spacedls 0.4.0

no_std CCSDS 355.0-B-2 (SDLS) Space Data Link Security implementation
Documentation
/// Generates a static, compile-time-fixed key ring struct.
///
/// Each key slot is a [`ManagedKey`](crate::key::ManagedKey) with lifecycle management
/// using [`KeyState`](crate::key::KeyState).
/// The macro generates:
/// - A struct with named `ManagedKey<N>` fields
/// - A `const fn new(...)` constructor taking raw byte arrays
/// - Named accessor methods for each key
/// - A `get(id)` method for ID-based lookup returning a generated enum with one variant per key size
///
/// # Example
/// ```ignore
/// spacedls::make_static_keyring! {
///     pub MyKeys {
///         BIT128 => {
///             enc_key: 0x0001,
///         },
///         BIT256 => {
///             auth_key: 0x0002,
///         },
///     }
/// }
/// ```
#[macro_export]
macro_rules! make_static_keyring {
    ($($tt:tt)*) => {
        $crate::__make_static_keyring_impl! { @$crate; $($tt)* }
    };
}