Skip to main content

secure_gate/macros/
dynamic_generic_alias.rs

1/// Creates a generic dynamic-sized heap-allocated secure secret type.
2///
3/// This macro generates a type alias to `Dynamic<T>` with a custom doc string.
4/// Useful for libraries providing generic dynamic-sized secret wrappers.
5///
6/// # Examples
7///
8/// With custom doc:
9/// ```
10/// use secure_gate::dynamic_generic_alias;
11/// dynamic_generic_alias!(pub SecureVec, "Secure dynamic byte vector");
12/// ```
13///
14/// With default doc:
15/// ```
16/// use secure_gate::dynamic_generic_alias;
17/// dynamic_generic_alias!(pub(crate) Wrapper);
18/// ```
19#[cfg(feature = "alloc")]
20#[macro_export]
21macro_rules! dynamic_generic_alias {
22    ($vis:vis $name:ident, $doc:literal) => {
23        #[doc = $doc]
24        $vis type $name<T> = $crate::Dynamic<T>;
25    };
26    ($vis:vis $name:ident) => {
27        #[doc = "Generic secure heap wrapper"]
28        $vis type $name<T> = $crate::Dynamic<T>;
29    };
30}