pub struct Connection<Si: Sink, St: Stream> { /* private fields */ }Expand description
A fully initialized connection with some peer.
Implementations§
Source§impl<Si: Sink, St: Stream> Connection<Si, St>
impl<Si: Sink, St: Stream> Connection<Si, St>
Sourcepub fn from_preestablished(
dialer: bool,
sink: Si,
stream: St,
cipher: ChaCha20Poly1305,
max_message_size: usize,
) -> Self
pub fn from_preestablished( dialer: bool, sink: Si, stream: St, cipher: ChaCha20Poly1305, max_message_size: usize, ) -> Self
Create a new connection from pre-established components.
This is useful in tests, or when upgrading a connection that has already been verified.
Sourcepub async fn upgrade_dialer<R: Rng + CryptoRng + Spawner + Clock, C: Scheme>(
context: R,
config: Config<C>,
sink: Si,
stream: St,
peer: C::PublicKey,
) -> Result<Self, Error>
pub async fn upgrade_dialer<R: Rng + CryptoRng + Spawner + Clock, C: Scheme>( context: R, config: Config<C>, sink: Si, stream: St, peer: C::PublicKey, ) -> Result<Self, Error>
Attempt to upgrade a raw connection we initiated.
This will send a handshake message to the peer, wait for a response, and verify the peer’s handshake message.
Sourcepub async fn upgrade_listener<R: Rng + CryptoRng + Spawner + Clock, C: Scheme>(
context: R,
incoming: IncomingConnection<C, Si, St>,
) -> Result<Self, Error>
pub async fn upgrade_listener<R: Rng + CryptoRng + Spawner + Clock, C: Scheme>( context: R, incoming: IncomingConnection<C, Si, St>, ) -> Result<Self, Error>
Attempt to upgrade a connection initiated by some peer.
Because we already verified the peer’s handshake, this function only needs to send our handshake message for the connection to be fully initialized.
Auto Trait Implementations§
impl<Si, St> Freeze for Connection<Si, St>
impl<Si, St> RefUnwindSafe for Connection<Si, St>where
Si: RefUnwindSafe,
St: RefUnwindSafe,
impl<Si, St> Send for Connection<Si, St>
impl<Si, St> Sync for Connection<Si, St>
impl<Si, St> Unpin for Connection<Si, St>
impl<Si, St> UnwindSafe for Connection<Si, St>where
Si: UnwindSafe,
St: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more