34 lines
1.0 KiB
Rust
34 lines
1.0 KiB
Rust
use crate::backend::audio::SoundHandle;
|
|
use crate::display_object::{Bitmap, Button, EditText, Graphic, MorphShape, MovieClip, Text};
|
|
use crate::font::Font;
|
|
|
|
#[derive(Clone)]
|
|
pub enum Character<'gc> {
|
|
EditText(EditText<'gc>),
|
|
Graphic(Graphic<'gc>),
|
|
MovieClip(MovieClip<'gc>),
|
|
Bitmap(Bitmap<'gc>),
|
|
Button(Button<'gc>),
|
|
Font(Font<'gc>),
|
|
MorphShape(MorphShape<'gc>),
|
|
Text(Text<'gc>),
|
|
Sound(SoundHandle),
|
|
}
|
|
|
|
unsafe impl<'gc> gc_arena::Collect for Character<'gc> {
|
|
#[inline]
|
|
fn trace(&self, cc: gc_arena::CollectionContext) {
|
|
match self {
|
|
Character::EditText(c) => c.trace(cc),
|
|
Character::Graphic(c) => c.trace(cc),
|
|
Character::MovieClip(c) => c.trace(cc),
|
|
Character::Bitmap(c) => c.trace(cc),
|
|
Character::Button(c) => c.trace(cc),
|
|
Character::Font(c) => c.trace(cc),
|
|
Character::MorphShape(c) => c.trace(cc),
|
|
Character::Text(c) => c.trace(cc),
|
|
Character::Sound(c) => c.trace(cc),
|
|
}
|
|
}
|
|
}
|