windows_metadata/
value.rs1use super::*;
2
3#[derive(Debug, PartialEq, Clone)]
4pub enum Value {
5 Bool(bool),
6 U8(u8),
7 I8(i8),
8 U16(u16),
9 I16(i16),
10 U32(u32),
11 I32(i32),
12 U64(u64),
13 I64(i64),
14 USize(u64),
15 ISize(i64),
16 F32(f32),
17 F64(f64),
18 Utf8(String),
19 Utf16(String),
20 TypeName(TypeName),
21 EnumValue(TypeName, Box<Self>),
22}
23
24impl Value {
25 pub fn ty(&self) -> Type {
26 match self {
27 Self::Bool(..) => Type::Bool,
28 Self::U8(..) => Type::U8,
29 Self::I8(..) => Type::I8,
30 Self::U16(..) => Type::U16,
31 Self::I16(..) => Type::I16,
32 Self::U32(..) => Type::U32,
33 Self::I32(..) => Type::I32,
34 Self::U64(..) => Type::U64,
35 Self::I64(..) => Type::I64,
36 Self::USize(..) => Type::USize,
37 Self::ISize(..) => Type::ISize,
38 Self::F32(..) => Type::F32,
39 Self::F64(..) => Type::F64,
40 Self::Utf8(..) | Self::Utf16(..) => Type::String,
41 Self::TypeName(..) => Type::ClassName(TypeName::named("System", "Type")),
42 Self::EnumValue(tn, _) => Type::ValueName(tn.clone()),
43 }
44 }
45}