use otspec::types::*;
use otspec_macros::tables;
use serde::{Deserialize, Serialize};
tables!(STATcore {
uint16 majorVersion
uint16 minorVersion
uint16 designAxisSize
uint16 designAxisCount
uint32 designAxesOffset
uint16 axisValueCount
uint32 offsetToAxisValueOffsets
}
AxisRecord {
Tag axisTag
uint16 axisNameID
uint16 axisOrdering
}
AxisValueFormat1 {
uint16 format
uint16 axisIndex
uint16 flags
uint16 valueNameID
Fixed value
}
AxisValueFormat2 {
uint16 format
uint16 axisIndex
uint16 flags
uint16 valueNameID
Fixed nominalValue
Fixed rangeMinValue
Fixed rangeMaxValue
}
AxisValueFormat3 {
uint16 format
uint16 axisIndex
uint16 flags
uint16 valueNameID
Fixed value
Fixed linkedValue
}
AxisValueFormat4Core {
uint16 format
uint16 axisCount
uint16 flags
uint16 valueNameID
}
AxisValueFormat4AxisValue {
uint16 axisIndex
Fixed value
}
);
bitflags! {
#[derive(Serialize, Deserialize)]
pub struct AxisValueFlags: u16 {
const OLDER_SIBLING_FONT_ATTRIBUTE = 0x0001;
const ELIDABLE_AXIS_VALUE_NAME = 0x0002;
}
}
struct AxisValue {
axis_index: uint16,
flags: AxisValueFlags,
}
#[derive(Debug, PartialEq)]
#[allow(clippy::upper_case_acronyms)]
pub struct STAT {
version: uint16,
design_axes: Vec<AxisRecord>,
axis_values: Vec<AxisValue>
}
#[cfg(test)]
mod tests {
use crate::STAT::STAT;
use otspec::ser;
}