ruffle/core/src/character.rs

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),
}
}
}