Struct tentacle::service::ProtocolMeta

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

Define the minimum data required for a custom protocol

Implementations§

source§

impl ProtocolMeta

source

pub fn id(&self) -> ProtocolId

Protocol id

source

pub fn name(&self) -> String

Protocol name, default is “/p2p/protocol_id”

source

pub fn support_versions(&self) -> Vec<String>

Protocol supported version

source

pub fn codec(&self) -> Box<dyn Codec + Send + 'static>

The codec used by the custom protocol, such as LengthDelimitedCodec by tokio

source

pub fn service_handle( &mut self, ) -> ProtocolHandle<Box<dyn ServiceProtocol + Send + Unpin + 'static>>

A service level callback handle for a protocol.


§Behavior

This function is called when the protocol is first opened in the service and remains in memory until the entire service is closed.

§Warning

Only can be called once, and will return ProtocolHandle::None or later.

source

pub fn session_handle( &mut self, ) -> ProtocolHandle<Box<dyn SessionProtocol + Send + Unpin + 'static>>

A session level callback handle for a protocol.


§Behavior

When a session is opened, whenever the protocol of the session is opened, the function will be called again to generate the corresponding exclusive handle.

Correspondingly, whenever the protocol is closed, the corresponding exclusive handle is cleared.

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

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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<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