1mod classes;
6mod object;
7mod primitive;
8
9pub use {
10 classes::*,
11 object::*,
12 primitive::*,
13};
14
15use super::*;
16
17
18#[derive(Debug, Clone, Copy, PartialEq, Eq)]
19pub enum Type {
20 Object,
21 Number,
22 String,
23 ByteArray,
24 Array,
25 Vector,
26 BitmapData,
27 Boolean,
28 Null,
29 Named(&'static str),
30 Context3D,
31 Error,
32 Unexpected(FREObjectType),
33}
34impl Type {
35 pub fn is_null(self) -> bool {self == Self::Null}
36}
37impl From<FREObjectType> for Type {
38 fn from(value: FREObjectType) -> Self {
39 match value {
40 FREObjectType::FRE_TYPE_OBJECT => Self::Object,
41 FREObjectType::FRE_TYPE_NUMBER => Self::Number,
42 FREObjectType::FRE_TYPE_STRING => Self::String,
43 FREObjectType::FRE_TYPE_BYTEARRAY => Self::ByteArray,
44 FREObjectType::FRE_TYPE_ARRAY => Self::Array,
45 FREObjectType::FRE_TYPE_VECTOR => Self::Vector,
46 FREObjectType::FRE_TYPE_BITMAPDATA => Self::BitmapData,
47 FREObjectType::FRE_TYPE_BOOLEAN => Self::Boolean,
48 FREObjectType::FRE_TYPE_NULL => Self::Null,
49 _ => Self::Unexpected(value),
50 }
51 }
52}
53impl Display for Type {
54 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
55 match *self {
56 Self::Named(name) => write!(f, "{name}"),
57 Self::Unexpected(ty) => write!(f, "Unexpected FREObjectType. ({ty:#08X})"),
58 _ => write!(f, "{self:?}"),
59 }
60 }
61}