blob: ebce05459f969db4660a0106af3e48a1b5aba1af [file] [edit]
use font_types::{BigEndian, FontRead};
font_types_macro::tables! {
/// A kind of a record
#[flags(u16)]
RecordKind {
/// Thing One
X_PLACEMENT = 0x0001,
/// Another
Y_PLACEMENT = 0x0002,
/// Advance X
X_ADVANCE = 0x0004,
/// Y Advances!
Y_ADVANCE = 0x0008,
}
Thing {
kind: BigEndian<RecordKind>,
field: BigEndian<u16>,
}
}
fn main() {
let mut buf = font_types::test_helpers::BeBuffer::new();
buf.push(RecordKind::X_ADVANCE | RecordKind::Y_PLACEMENT);
buf.push(69u16);
let thing = Thing::read(&buf).unwrap();
assert_eq!(thing.field(), 69);
assert!(thing.kind().contains(RecordKind::X_ADVANCE));
assert!(thing.kind().contains(RecordKind::Y_PLACEMENT));
assert!(!thing.kind().contains(RecordKind::Y_ADVANCE));
}