secure_gate/
macros.rs

1// src/macros.rs
2// Ergonomic constructor macro + type aliases only
3
4/// Create a secret from an expression or literal.
5#[macro_export]
6macro_rules! secure {
7    ($ty:ty, $expr:expr) => {
8        $crate::Fixed::<$ty>::new($expr)
9    };
10    ($ty:ty, [$($val:expr),+ $(,)?]) => {
11        $crate::Fixed::<$ty>::new([$($val),+])
12    };
13}
14
15/// Define a fixed-size secret type alias.
16#[macro_export]
17macro_rules! fixed_alias {
18    ($name:ident, $size:literal) => {
19        pub type $name = $crate::Fixed<[u8; $size]>;
20    };
21}
22
23/// Define a dynamic secret type alias.
24#[macro_export]
25macro_rules! dynamic_alias {
26    ($name:ident, $ty:ty) => {
27        pub type $name = $crate::Dynamic<$ty>;
28    };
29}