ProtocolMessageGuardAsyncBuilder

Struct ProtocolMessageGuardAsyncBuilder 

Source
pub struct ProtocolMessageGuardAsyncBuilder<InnerBuilder_: for<'this> FnOnce(&'this Bytes) -> Pin<Box<dyn Future<Output = ProtocolMessage<'this>> + 'this>>> {
    pub buffer: Bytes,
    pub inner_builder: InnerBuilder_,
}
Expand description

A more verbose but stable way to construct self-referencing structs. It is comparable to using StructName { field1: value1, field2: value2 } rather than StructName::new(value1, value2). This has the dual benefit of making your code both easier to refactor and more readable. Call build() to construct the actual struct. The fields of this struct should be used as follows:

FieldSuggested Use
bufferDirectly pass in the value this field should contain
inner_builderUse a function or closure: (buffer: &_) -> inner: _

Fields§

§buffer: Bytes§inner_builder: InnerBuilder_

Implementations§

Source§

impl<InnerBuilder_: for<'this> FnOnce(&'this Bytes) -> Pin<Box<dyn Future<Output = ProtocolMessage<'this>> + 'this>>> ProtocolMessageGuardAsyncBuilder<InnerBuilder_>

Source

pub async fn build(self) -> ProtocolMessageGuard

Calls ProtocolMessageGuard::new() using the provided values. This is preferable over calling new() directly for the reasons listed above.

Auto Trait Implementations§

§

impl<InnerBuilder_> !Freeze for ProtocolMessageGuardAsyncBuilder<InnerBuilder_>

§

impl<InnerBuilder_> RefUnwindSafe for ProtocolMessageGuardAsyncBuilder<InnerBuilder_>
where InnerBuilder_: RefUnwindSafe,

§

impl<InnerBuilder_> Send for ProtocolMessageGuardAsyncBuilder<InnerBuilder_>
where InnerBuilder_: Send,

§

impl<InnerBuilder_> Sync for ProtocolMessageGuardAsyncBuilder<InnerBuilder_>
where InnerBuilder_: Sync,

§

impl<InnerBuilder_> Unpin for ProtocolMessageGuardAsyncBuilder<InnerBuilder_>
where InnerBuilder_: Unpin,

§

impl<InnerBuilder_> UnwindSafe for ProtocolMessageGuardAsyncBuilder<InnerBuilder_>
where InnerBuilder_: UnwindSafe,

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> 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, 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