Skip to main content

NetworkFor

Trait NetworkFor 

Source
pub trait NetworkFor<T: ?Sized>: Sealed<T> {
    type OrderingGuarantee: Ordering;

    // Required methods
    fn serialize_thunk(is_demux: bool) -> Expr;
    fn deserialize_thunk(tagged: Option<&Type>) -> Expr;
    fn name(&self) -> Option<&str>;
    fn networking_info() -> NetworkingInfo;

    // Provided method
    fn is_embedded() -> bool { ... }
}
Expand description

A networking backend implementation that supports items of type T.

Required Associated Types§

Source

type OrderingGuarantee: Ordering

The ordering guarantee provided by this network configuration. When combined with an input stream’s ordering O, the output ordering will be <O as MinOrder<Self::OrderingGuarantee>>::Min.

Required Methods§

Source

fn serialize_thunk(is_demux: bool) -> Expr

Generates serialization logic for sending T.

Source

fn deserialize_thunk(tagged: Option<&Type>) -> Expr

Generates deserialization logic for receiving T.

Source

fn name(&self) -> Option<&str>

Returns the optional name of the network channel.

Source

fn networking_info() -> NetworkingInfo

Returns the NetworkingInfo describing this network channel’s transport and fault model.

Provided Methods§

Source

fn is_embedded() -> bool

Whether this network channel leaves serialization to code outside of Hydro (see Embedded). When true, Self::serialize_thunk and Self::deserialize_thunk are never called; the raw element type flows across the channel unserialized.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<Tr, S, T: ?Sized> NetworkFor<T> for NetworkingConfig<Tr, S, String>
where Tr: TransportKind + ?Sized, S: SerKind<T> + ?Sized,

Source§

impl<Tr, S, T: ?Sized> NetworkFor<T> for NetworkingConfig<Tr, S>
where Tr: TransportKind + ?Sized, S: SerKind<T> + ?Sized,