Struct Connection

Source
pub struct Connection<T> { /* private fields */ }
Expand description

Low-level connection type that handles basic channel idx bookkeeping and inbound event buffering.

Implementations§

Source§

impl<T> Connection<T>

Source

pub fn inner(&self) -> &T

Source

pub fn inner_mut(&mut self) -> &mut T

Returns a mutable reference to the inner recv instance. Note that using this to recv messages can break the bookkeeping, so use caution.

Source

pub fn into_inner(self) -> T

Source

pub fn protocol(&self) -> Topic

Source

pub fn initiator(&self) -> Creator

Source

pub fn peer_data(&self) -> &PeerData

Source

pub fn num_open_channels(&self) -> usize

Returns the number of open channels in the internal channel table. This includes channels opened in response to pending events that are buffered and need to be processed.

Source

pub fn has_pending_events(&self) -> bool

Returns if there’s events that have been produced but not consumed yet.

Source§

impl<T: AsyncRecvFrame> Connection<T>

Source

pub async fn next_event(&mut self) -> Result<Option<InbEvent>, Error>

Takes the next event out of the buffer or, if empty, waits for a new event to be produced.

Source§

impl<T: AsyncSendFrame> Connection<T>

Source

pub async fn open_channel( &mut self, topic: Topic, payload: Vec<u8>, flags: MsgFlags, ) -> Result<u32, Error>

Opens a channel on a topic with a channel, optionally closing our end of it immediately.

Source

pub async fn send_message( &mut self, chan_id: u32, payload: Vec<u8>, flags: MsgFlags, ) -> Result<bool, Error>

Sends a message on a channel that we haven’t closed ourselves yet. Returns if the channel is kept alive after this.

Source

pub async fn close_channel(&mut self, chan_id: u32) -> Result<bool, Error>

Close a channel without sending a message. Returns if the channel is kept alive after this.

Source

pub async fn send_notification( &mut self, topic: Topic, message: Vec<u8>, ) -> Result<(), Error>

Sends a notification on a topic.

Auto Trait Implementations§

§

impl<T> Freeze for Connection<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Connection<T>
where T: RefUnwindSafe,

§

impl<T> Send for Connection<T>
where T: Send,

§

impl<T> Sync for Connection<T>
where T: Sync,

§

impl<T> Unpin for Connection<T>
where T: Unpin,

§

impl<T> UnwindSafe for Connection<T>
where T: 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