pub struct ProtocolMeta {Show 16 fields
pub id: ProtocolId,
pub name: &'static str,
pub ntones: u32,
pub bits_per_symbol: u32,
pub nsps: u32,
pub symbol_dt: f32,
pub tone_spacing_hz: f32,
pub gfsk_bt: f32,
pub gfsk_hmod: f32,
pub n_data: u32,
pub n_sync: u32,
pub n_symbols: u32,
pub t_slot_s: f32,
pub fec_k: usize,
pub fec_n: usize,
pub payload_bits: u32,
}Expand description
Compile-time metadata describing one wired protocol.
Every field is sourced from the trait surface — see the
protocol_meta! macro in this module’s source for the explicit
mapping. Field order matches a typical “what does this protocol
look like” display: identity → modulation → frame → FEC →
payload.
Fields§
§id: ProtocolIdFamily-level protocol id used at the FFI boundary. Multiple
ProtocolMeta entries may share an id (e.g. all six Q65
sub-modes are ProtocolId::Q65).
name: &'static strHuman-readable name (e.g. "FT8", "Q65-60D"). Stable —
safe for logs, UI strings, and as a by_name key.
ntones: u32Number of FSK tones (ModulationParams::NTONES).
bits_per_symbol: u32Information bits per modulated symbol.
nsps: u32Samples per symbol at 12 kHz.
symbol_dt: f32Symbol duration in seconds.
tone_spacing_hz: f32Tone-to-tone spacing in Hz.
gfsk_bt: f32Gaussian bandwidth-time product (0 = plain FSK).
gfsk_hmod: f32FSK modulation index (h).
n_data: u32Data symbols per frame.
n_sync: u32Sync symbols per frame (interleaved-sync protocols report 0).
n_symbols: u32Total channel symbols per frame (= n_data + n_sync).
t_slot_s: f32Nominal slot length in seconds (15 / 7.5 / 30 / 60 / 120).
fec_k: usizeFEC info-bit budget — FecCodec::K.
fec_n: usizeFEC codeword length in bits — FecCodec::N.
payload_bits: u32Message-codec payload width — MessageCodec::PAYLOAD_BITS.
Trait Implementations§
Source§impl Clone for ProtocolMeta
impl Clone for ProtocolMeta
Source§fn clone(&self) -> ProtocolMeta
fn clone(&self) -> ProtocolMeta
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProtocolMeta
impl Debug for ProtocolMeta
impl Copy for ProtocolMeta
Auto Trait Implementations§
impl Freeze for ProtocolMeta
impl RefUnwindSafe for ProtocolMeta
impl Send for ProtocolMeta
impl Sync for ProtocolMeta
impl Unpin for ProtocolMeta
impl UnsafeUnpin for ProtocolMeta
impl UnwindSafe for ProtocolMeta
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more