2019-10-26 22:04:52 +00:00
|
|
|
use crate::backend::audio::SoundHandle;
|
|
|
|
use crate::display_object::{Bitmap, Button, EditText, Graphic, MorphShape, MovieClip, Text};
|
|
|
|
use crate::font::Font;
|
|
|
|
|
2019-12-16 19:29:32 +00:00
|
|
|
#[derive(Clone)]
|
2019-05-24 17:25:03 +00:00
|
|
|
pub enum Character<'gc> {
|
2019-12-16 18:53:50 +00:00
|
|
|
EditText(EditText<'gc>),
|
|
|
|
Graphic(Graphic<'gc>),
|
|
|
|
MovieClip(MovieClip<'gc>),
|
|
|
|
Bitmap(Bitmap<'gc>),
|
|
|
|
Button(Button<'gc>),
|
2019-12-17 05:21:59 +00:00
|
|
|
Font(Font<'gc>),
|
2019-12-16 18:53:50 +00:00
|
|
|
MorphShape(MorphShape<'gc>),
|
|
|
|
Text(Text<'gc>),
|
2019-10-26 22:04:52 +00:00
|
|
|
Sound(SoundHandle),
|
2019-04-25 17:52:22 +00:00
|
|
|
}
|
2019-08-19 23:02:40 +00:00
|
|
|
|
|
|
|
unsafe impl<'gc> gc_arena::Collect for Character<'gc> {
|
|
|
|
#[inline]
|
|
|
|
fn trace(&self, cc: gc_arena::CollectionContext) {
|
|
|
|
match self {
|
2019-10-08 02:27:31 +00:00
|
|
|
Character::EditText(c) => c.trace(cc),
|
2019-08-19 23:02:40 +00:00
|
|
|
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),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|