Skip to main content

MuxMessage

Enum MuxMessage 

Source
pub enum MuxMessage {
    Register {
        protocol: ProtocolId<Erased>,
        frame: Frame,
        handler: StageRef<HandlerMessage>,
        max_buffer: usize,
    },
    Buffer(ProtocolId<Erased>, usize),
    Send(ProtocolId<Erased>, NonEmptyBytes, StageRef<Sent>),
    FromNetwork(Timestamp, ProtocolId<Erased>, NonEmptyBytes),
    Written,
    WantNext(ProtocolId<Erased>),
    Terminate,
}

Variants§

§

Register

Register the given protocol with its ID so that data will be fed into it

Note that the handler explicitly needs to request each network message by sending WantNext. This is necessary to allow proper handling of TCP simultaneous open in the handshake protocol.

Fields

§protocol: ProtocolId<Erased>
§frame: Frame
§max_buffer: usize
§

Buffer(ProtocolId<Erased>, usize)

Buffer incoming data for this protocol ID up to the given limit (this should be followed by Register eventually, to then consume the data)

Setting the size to zero means that data are dropped without begin buffered and without tearing down the connection.

§

Send(ProtocolId<Erased>, NonEmptyBytes, StageRef<Sent>)

Send the given message on the protocol ID and notify when enqueued in TCP buffer

§

FromNetwork(Timestamp, ProtocolId<Erased>, NonEmptyBytes)

internal message coming from the TCP stream reader

§

Written

Notify that the segment has been written to the TCP stream

§

WantNext(ProtocolId<Erased>)

Permit the next invocation of the Protocol with data from the network.

§

Terminate

Reading or writing error occurred

Trait Implementations§

Source§

impl Debug for MuxMessage

Source§

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

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

impl<'de> Deserialize<'de> for MuxMessage

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for MuxMessage

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Serialize for MuxMessage

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for MuxMessage

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> SendData for T
where T: Any + PartialEq + Debug + Serialize + DeserializeOwned + Send + 'static,

Source§

fn typetag_name(&self) -> &'static str

Source§

fn test_eq(&self, other: &(dyn SendData + 'static)) -> bool

Check for equality with another dynamically typed message. Read more
Source§

fn deserialize_value( &self, other: &(dyn SendData + 'static), ) -> Result<Box<dyn SendData>, Error>

Deserialize the other dynamic value into this concrete type.
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,