spacedls 0.4.0

no_std CCSDS 355.0-B-2 (SDLS) Space Data Link Security implementation
Documentation
/// Generates a static, compile-time-fixed SA store struct.
///
/// Each SA slot is a [`ManagedSa`](crate::protocol::ManagedSa) wrapping a
/// [`SecurityAssociation`](crate::protocol::SecurityAssociation) with a specific
/// service provider and frame format. The macro generates:
/// - A struct with named `ManagedSa` fields (lifetime `'__ks` is injected automatically)
/// - Named accessor methods for each SA (immutable and mutable)
/// - A `get(spi)` / `get_mut(spi)` method for SPI-based lookup returning a generated enum
///
/// # Example
/// ```ignore
/// spacedls::make_static_sastore! {
///     pub MySas {
///         tc_enc:     0x0001 => enc AesCbc<Aes128, Pkcs7>, MyEncFmt,
///         tm_authenc: 0x0003 => authenc AesGcm<Aes128>, MyAeadFmt,
///     }
/// }
/// ```
#[macro_export]
macro_rules! make_static_sastore {
    ($($tt:tt)*) => {
        $crate::__make_static_sastore_impl! { @$crate; $($tt)* }
    };
}