Skip to main content

FixedArrayChannelTable

Struct FixedArrayChannelTable 

Source
pub struct FixedArrayChannelTable<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> { /* private fields */ }

Trait Implementations§

Source§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> ChannelTable for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

Source§

fn capacity(&self) -> usize

Source§

fn len(&self) -> usize

Source§

fn index_of(&self, link: &LinkId) -> Option<usize>

Source§

fn ensure(&mut self, link: &LinkId) -> Result<usize, EnsureChannelError>

Source§

fn close(&mut self, link: &LinkId)

Source§

fn next_expected(&self, index: usize) -> ChannelSequence

Source§

fn set_next_expected(&mut self, index: usize, sequence: ChannelSequence)

Source§

fn buffered_sequences(&self, index: usize) -> &[ChannelSequence]

Source§

fn buffered_message_type(&self, index: usize, sub: usize) -> MessageType

Source§

fn buffered_payload(&self, index: usize, sub: usize) -> &[u8]

Source§

fn push_buffered( &mut self, index: usize, sequence: ChannelSequence, message_type: MessageType, payload: &[u8], ) -> BufferOutcome

Source§

fn swap_remove_buffered(&mut self, index: usize, sub: usize)

Source§

fn next_tx_sequence(&self, index: usize) -> ChannelSequence

Source§

fn set_next_tx_sequence(&mut self, index: usize, sequence: ChannelSequence)

Source§

fn window(&self, index: usize) -> ChannelWindow

Source§

fn set_window(&mut self, index: usize, window: ChannelWindow)

Source§

fn outstanding_count(&self, index: usize) -> usize

Source§

fn outstanding_packet_hashes(&self, index: usize) -> &[PacketHash]

Source§

fn outstanding_command_id(&self, index: usize, sub: usize) -> CommandId

Source§

fn outstanding_sent_at(&self, index: usize, sub: usize) -> InstantMillis

Source§

fn outstanding_timeout_at(&self, index: usize, sub: usize) -> InstantMillis

Source§

fn set_outstanding_timeout_at( &mut self, index: usize, sub: usize, timeout_at: InstantMillis, )

Source§

fn outstanding_tries(&self, index: usize, sub: usize) -> u8

Source§

fn set_outstanding_tries(&mut self, index: usize, sub: usize, tries: u8)

Source§

fn outstanding_sequence(&self, index: usize, sub: usize) -> ChannelSequence

Source§

fn outstanding_message_type(&self, index: usize, sub: usize) -> MessageType

Source§

fn outstanding_body(&self, index: usize, sub: usize) -> &[u8]

Source§

fn outstanding_iv(&self, index: usize, sub: usize) -> [u8; 16]

Source§

fn push_outstanding( &mut self, index: usize, send: OutstandingSend<'_>, ) -> TxOutcome

Source§

fn retire_outstanding(&mut self, index: usize, sub: usize)

Source§

fn channel_earliest_tx_timeout(&self, index: usize) -> Option<InstantMillis>

The channel’s cached earliest outstanding deadline: a due-scan skips any channel whose value sits in the future.
Source§

fn set_channel_earliest_tx_timeout( &mut self, index: usize, earliest: Option<InstantMillis>, )

Source§

fn is_empty(&self) -> bool

Source§

fn rescan_channel_earliest_tx_timeout(&mut self, index: usize)

Source§

fn absorb_outstanding_timeout_change( &mut self, index: usize, change: OutstandingTimeoutChange, )

Folds one deadline mutation into the channel’s cached earliest: a push or a lowered deadline settles in place, while raising or retiring the current holder re-walks that one ring. Every mutator routes through here, so the cache never desyncs and never costs a cross-channel scan.
Source§

fn scan_earliest_tx_timeout(&self) -> Option<InstantMillis>

The debug oracle for the cached earliests: the full channels × ring walk.
Source§

fn earliest_tx_timeout_at(&self) -> Option<InstantMillis>

Source§

fn first_due_channel(&self, now: InstantMillis) -> Option<usize>

Source§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> Default for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

Source§

fn default() -> FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> Freeze for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> RefUnwindSafe for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> Send for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> Sync for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> Unpin for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> UnsafeUnpin for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

§

impl<const SLOTS: usize, const REORDER_CAP: usize, const MAX_PAYLOAD: usize> UnwindSafe for FixedArrayChannelTable<SLOTS, REORDER_CAP, MAX_PAYLOAD>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.