Skip to main content

FipsEndpointDirectPacketRun

Struct FipsEndpointDirectPacketRun 

Source
pub struct FipsEndpointDirectPacketRun { /* private fields */ }
Expand description

Consecutive direct endpoint packets from one authenticated FIPS source.

Unlike FipsEndpointDirectSourceRun, this can preserve an opened EndpointDataBulk buffer and expose packet slices by range. That is the canonical direct PM2 endpoint payload contract for high-throughput embedders: FIPS owns authentication and ordering, while the embedder can still apply live routing policy before borrowing packet bytes for TUN writes.

Implementations§

Source§

impl FipsEndpointDirectPacketRun

Source

pub fn meta(&self) -> &FipsEndpointDirectPacketRunMeta

Authenticated source/session facts for this packet run.

Source

pub fn source_peer(&self) -> &PeerIdentity

Authenticated FIPS peer that originated every packet in this run.

Source

pub fn source_node_addr(&self) -> &NodeAddr

FIPS node address that originated every packet in this run.

Source

pub fn source_npub(&self) -> String

Source Nostr public key as human-facing bech32 text.

Source

pub fn previous_hop_node_addr(&self) -> &NodeAddr

Authenticated previous hop for this established FSP receive run.

Source

pub fn is_direct_path(&self) -> bool

Whether FIPS received the run directly from the source node.

Source

pub fn received_k_bit(&self) -> bool

Whether the established FSP packet carried the key-epoch bit.

Source

pub fn enqueued_at_ms(&self) -> u64

Unix-millisecond time when FIPS handed this run to the direct sink.

Source

pub fn len(&self) -> usize

Number of endpoint packets in the run.

Source

pub fn is_empty(&self) -> bool

Whether the run contains no packets.

Source

pub fn packet_bytes(&self) -> usize

Sum of endpoint packet bytes, excluding bulk length metadata.

Source

pub fn packet_slice(&self, index: usize) -> Option<&[u8]>

Borrow one packet by index.

Source

pub fn packet_slice_mut(&mut self, index: usize) -> Option<&mut [u8]>

Mutably borrow one packet by index.

Source

pub fn packet_slices(&self) -> FipsEndpointDirectPacketSlices<'_>

Borrow packet bytes without materializing per-packet buffers.

Source

pub fn partition_by_packet_lane<F>( self, lane_count: usize, lane_for_packet: F, ) -> Vec<(usize, Self)>
where F: FnMut(&[u8]) -> usize,

Partition this run into packet-lane groups without copying packet bytes.

The caller chooses a lane from immutable endpoint packet bytes. FIPS keeps authentication/session metadata on every child run and shares the opened endpoint payload buffer across lane runs.

Source

pub fn retain_packets<F>(&mut self, keep: F)
where F: FnMut(usize, &[u8]) -> bool,

Keep only packets accepted by the caller while preserving backing storage.

The predicate receives the original packet index and immutable bytes. This keeps routing/admission policy outside FIPS while allowing embedders to remove rejected ranges before a TUN writer borrows or mutates the run.

Source

pub fn for_each_packet_mut<F>(&mut self, visit: F)
where F: FnMut(&mut [u8]),

Visit each packet as mutable bytes while the run owner is borrowed.

Source

pub fn into_source_run(self) -> FipsEndpointDirectSourceRun

Materialize this run into the older owned-packet source-run contract.

Source

pub fn into_packets(self) -> Vec<PacketBuffer>

Materialize this run into owned packet buffers.

Trait Implementations§

Source§

impl Clone for FipsEndpointDirectPacketRun

Source§

fn clone(&self) -> FipsEndpointDirectPacketRun

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FipsEndpointDirectPacketRun

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for FipsEndpointDirectPacketRun

Source§

impl PartialEq for FipsEndpointDirectPacketRun

Source§

fn eq(&self, other: &FipsEndpointDirectPacketRun) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for FipsEndpointDirectPacketRun

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more