Created binary_loader
This commit is contained in:
@@ -6,6 +6,27 @@ struct DBHeader {
|
||||
record_count: u32,
|
||||
}
|
||||
|
||||
impl DBHeader {
|
||||
fn from(raw: [u8; 8]) -> DBHeader {
|
||||
|
||||
let mut reserved : u16 = 0x0000;
|
||||
reserved = raw[2].into();
|
||||
reserved <<= 8;
|
||||
let temp : u16 = raw[3].into();
|
||||
reserved |= temp;
|
||||
|
||||
let mut record_count : u32 = 0x00000000;
|
||||
|
||||
DBHeader {
|
||||
magic: raw[0],
|
||||
major_version: (raw[1] | 0xF0) >> 4,
|
||||
minor_version: (raw[1] | 0x0F),
|
||||
reserved: reserved,
|
||||
record_count: record_count,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct RecordHeader {
|
||||
field_count: u8,
|
||||
length: u8,
|
||||
@@ -23,4 +44,11 @@ mod tests {
|
||||
fn it_works() {
|
||||
assert_eq!(2 + 2, 4);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn load_empty_db_header() {
|
||||
let header = [0xDB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00];
|
||||
let db_header = DBHeader::from(header);
|
||||
assert_eq!(db_header.magic, 0xDB);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user