1#[macro_export]
3macro_rules! layout {
4 ($name:ident u($bits:expr); $group:expr) => {
5 #[allow(non_upper_case_globals)]
6 pub const $name: $crate::DigitLayout = $crate::DigitLayout::unsigned($bits, $group);
7 };
8 ($name:ident e($exponent:expr)m($mantissa:expr); $group:expr) => {
9 #[allow(non_upper_case_globals)]
10 pub const $name: $crate::DigitLayout = $crate::DigitLayout::real($exponent, $mantissa, $group);
11 };
12 ($name:ident = $text:expr; [$group:expr] in $size:expr) => {
13 #[allow(non_upper_case_globals)]
14 pub const $name: $crate::DigitLayout = $crate::DigitLayout::named($text, $group, $size);
15 };
16
17 ($name:ident u($bits:expr)) => {
18 $crate::layout!($name u($bits); 1);
19 };
20 ($name:ident i($bits:expr)) => {
21 $crate::layout!($name e(0)m($bits - 1); 1);
22 };
23 ($name:ident e($exponent:expr)m($mantissa:expr)) => {
24 $crate::layout!($name e($exponent)m($mantissa); 1);
25 };
26 ($name:ident; [$group:expr] in $size:expr) => {
27 $crate::layout!($name = stringify!($name); [$group] in $size);
28 };
29}