1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
pub enum TagType {
Master,
UnsignedInt,
Integer,
Utf8,
Binary,
Float,
}
macro_rules! define_ebml {
($master:ident { $($name:ident: $kind:ty = $id:literal),* }) => {
pub enum $master {
$($name($kind)),*
}
impl $master {
}
};
}
// 0x1a45dfa3
define_ebml! {
Ebml {
EbmlVersion: u64 = 0x4286,
EbmlReadVersion: u64 = 0x42f7,
EbmlMaxIdLength: u64 = 0x42f2,
EbmlMaxSizeLength: u64 = 0x42f3,
DocType: String = 0x4282,
DocTypeVersion: u64 = 0x4287,
DocTypeReadVersion: u64 = 0x4285,
DocTypeExtension: DocTypeExtension = 0x4281
}
}
define_ebml! {
DocTypeExtension {
Name: String = 0x4283,
Version: u64 = 0x4284
}
}
|