Struct libp2p::mplex::MplexConfig

source ·
pub struct MplexConfig { /* private fields */ }
Expand description

Configuration for the multiplexer.

Implementations§

source§

impl MplexConfig

source

pub fn new() -> MplexConfig

Builds the default configuration.

source

pub fn set_max_num_streams(&mut self, max: usize) -> &mut MplexConfig

Sets the maximum number of simultaneously used substreams.

A substream is used as long as it has not been dropped, even if it may already be closed or reset at the protocol level (in which case it may still have buffered data that can be read before the StreamMuxer API signals EOF).

When the limit is reached, opening of outbound substreams is delayed until another substream is dropped, whereas new inbound substreams are immediately answered with a Reset. If the number of inbound substreams that need to be reset accumulates too quickly (judged by internal bounds), the connection is closed with an error due to the misbehaved remote.

source

pub fn set_max_buffer_size(&mut self, max: usize) -> &mut MplexConfig

Sets the maximum number of frames buffered per substream.

A limit is necessary in order to avoid DoS attacks.

source

pub fn set_max_buffer_behaviour( &mut self, behaviour: MaxBufferBehaviour ) -> &mut MplexConfig

Sets the behaviour when the maximum buffer size is reached for a substream.

See the documentation of MaxBufferBehaviour.

source

pub fn set_split_send_size(&mut self, size: usize) -> &mut MplexConfig

Sets the frame size used when sending data. Capped at 1Mbyte as per the Mplex spec.

source

pub fn set_protocol_name( &mut self, protocol_name: &'static [u8] ) -> &mut MplexConfig

Set the protocol name.

use libp2p_mplex::MplexConfig;
let mut muxer_config = MplexConfig::new();
muxer_config.set_protocol_name(b"/mplex/6.7.0");

Trait Implementations§

source§

impl Clone for MplexConfig

source§

fn clone(&self) -> MplexConfig

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for MplexConfig

source§

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

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

impl Default for MplexConfig

source§

fn default() -> MplexConfig

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

impl<C> InboundUpgrade<C> for MplexConfigwhere C: AsyncRead + AsyncWrite + Unpin,

§

type Output = Multiplex<C>

Output after the upgrade has been successfully negotiated and the handshake performed.
§

type Error = Error

Possible error during the handshake.
§

type Future = Ready<Result<<MplexConfig as InboundUpgrade<C>>::Output, Error>>

Future that performs the handshake with the remote.
source§

fn upgrade_inbound( self, socket: C, _: <MplexConfig as UpgradeInfo>::Info ) -> <MplexConfig as InboundUpgrade<C>>::Future

After we have determined that the remote supports one of the protocols we support, this method is called to start the handshake. Read more
source§

impl<C> OutboundUpgrade<C> for MplexConfigwhere C: AsyncRead + AsyncWrite + Unpin,

§

type Output = Multiplex<C>

Output after the upgrade has been successfully negotiated and the handshake performed.
§

type Error = Error

Possible error during the handshake.
§

type Future = Ready<Result<<MplexConfig as OutboundUpgrade<C>>::Output, Error>>

Future that performs the handshake with the remote.
source§

fn upgrade_outbound( self, socket: C, _: <MplexConfig as UpgradeInfo>::Info ) -> <MplexConfig as OutboundUpgrade<C>>::Future

After we have determined that the remote supports one of the protocols we support, this method is called to start the handshake. Read more
source§

impl UpgradeInfo for MplexConfig

§

type Info = &'static [u8]

Opaque type representing a negotiable protocol.
§

type InfoIter = Once<<MplexConfig as UpgradeInfo>::Info>

Iterator returned by protocol_info.
source§

fn protocol_info(&self) -> <MplexConfig as UpgradeInfo>::InfoIter

Returns the list of protocols that are supported. Used during the negotiation process.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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<C, U> InboundUpgradeExt<C> for Uwhere U: InboundUpgrade<C>,

source§

fn map_inbound<F, T>(self, f: F) -> MapInboundUpgrade<Self, F>where Self: Sized, F: FnOnce(Self::Output) -> T,

Returns a new object that wraps around Self and applies a closure to the Output.
source§

fn map_inbound_err<F, T>(self, f: F) -> MapInboundUpgradeErr<Self, F>where Self: Sized, F: FnOnce(Self::Error) -> T,

Returns a new object that wraps around Self and applies a closure to the Error.
source§

impl<T, TInfo> InboundUpgradeSend for Twhere T: InboundUpgrade<Negotiated<SubstreamBox>, Info = TInfo> + UpgradeInfoSend<Info = TInfo>, TInfo: ProtocolName + Clone + Send + 'static, <T as InboundUpgrade<Negotiated<SubstreamBox>>>::Output: Send + 'static, <T as InboundUpgrade<Negotiated<SubstreamBox>>>::Error: Send + 'static, <T as InboundUpgrade<Negotiated<SubstreamBox>>>::Future: Send + 'static,

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 Twhere 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<C, U> OutboundUpgradeExt<C> for Uwhere U: OutboundUpgrade<C>,

source§

fn map_outbound<F, T>(self, f: F) -> MapOutboundUpgrade<Self, F>where Self: Sized, F: FnOnce(Self::Output) -> T,

Returns a new object that wraps around Self and applies a closure to the Output.
source§

fn map_outbound_err<F, T>(self, f: F) -> MapOutboundUpgradeErr<Self, F>where Self: Sized, F: FnOnce(Self::Error) -> T,

Returns a new object that wraps around Self and applies a closure to the Error.
source§

impl<T, TInfo> OutboundUpgradeSend for Twhere T: OutboundUpgrade<Negotiated<SubstreamBox>, Info = TInfo> + UpgradeInfoSend<Info = TInfo>, TInfo: ProtocolName + Clone + Send + 'static, <T as OutboundUpgrade<Negotiated<SubstreamBox>>>::Output: Send + 'static, <T as OutboundUpgrade<Negotiated<SubstreamBox>>>::Error: Send + 'static, <T as OutboundUpgrade<Negotiated<SubstreamBox>>>::Future: Send + 'static,

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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<T> UpgradeInfoSend for Twhere T: UpgradeInfo + Send + 'static, <T as UpgradeInfo>::Info: Send + 'static, <<T as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: Send + 'static,

source§

impl<V, T> VZip<V> for Twhere 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