Struct qp2p::Connection

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

The sending API for a connection.

Implementations§

source§

impl Connection

source

pub fn close_reason(&self) -> Option<ConnectionError>

Returns Some(...) if the connection is closed.

source

pub fn id(&self) -> String

A stable identifier for the connection.

This ID will not change for the lifetime of the connection to a given ip.

The ID pulls the internal conneciton id and concats with the SocketAddr of the peer. So this should be unique per peer (without IP spoofing).

source

pub fn remote_address(&self) -> SocketAddr

The address of the remote peer.

source

pub async fn send(&self, user_msg_bytes: UsrMsgBytes) -> Result<(), SendError>

Send a message to the peer.

The message will be sent on a unidirectional QUIC stream, meaning the application is responsible for correlating any anticipated responses from incoming streams.

The priority will be 0.

source

pub async fn open_uni(&self) -> Result<SendStream, ConnectionError>

Open a unidirection stream to the peer.

Messages sent over the stream will arrive at the peer in the order they were sent.

source

pub async fn open_bi(&self) -> Result<(SendStream, RecvStream), ConnectionError>

Open a bidirectional stream to the peer.

Bidirectional streams allow messages to be sent in both directions. This can be useful to automatically correlate response messages, for example.

Messages sent over the stream will arrive at the peer in the order they were sent.

source

pub fn close(&self, reason: Option<String>)

Close the connection immediately.

This is not a graceful close - pending operations will fail immediately with ConnectionError::Closed([Close::Local]), and data on unfinished streams is not guaranteed to be delivered.

source

pub async fn send_with( &self, user_msg_bytes: UsrMsgBytes, priority: i32 ) -> Result<(), SendError>

Opens a uni-directional stream and sends message on it using the given priority.

Trait Implementations§

source§

impl Debug for Connection

source§

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

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

impl Drop for Connection

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · 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 Twhere U: From<T>,

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · 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.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

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