secure_gate/macros/fixed_generic_alias.rs
1/// Creates a generic fixed-size stack-allocated secure secret type.
2///
3/// This macro generates a type alias to `Fixed<[u8; N]>` with a custom doc string.
4/// Useful for libraries providing generic fixed-size stack-allocated secret buffers.
5///
6/// # Examples
7///
8/// With custom doc:
9/// ```
10/// use secure_gate::fixed_generic_alias;
11/// fixed_generic_alias!(pub GenericBuffer, "Generic secure byte buffer");
12/// ```
13///
14/// With default doc:
15/// ```
16/// use secure_gate::fixed_generic_alias;
17/// fixed_generic_alias!(pub(crate) Buffer);
18/// ```
19#[macro_export]
20macro_rules! fixed_generic_alias {
21 ($vis:vis $name:ident, $doc:literal) => {
22 #[doc = $doc]
23 $vis type $name<const N: usize> = $crate::Fixed<[u8; N]>;
24 };
25 ($vis:vis $name:ident) => {
26 #[doc = "Fixed-size secure byte buffer"]
27 $vis type $name<const N: usize> = $crate::Fixed<[u8; N]>;
28 };
29}