pub struct WebTransportSession<C, B>where
C: Connection<B>,
B: Buf,{ /* private fields */ }Expand description
WebTransport session driver.
Maintains the session using the underlying HTTP/3 connection.
Similar to h3::server::Connection it is generic over the QUIC implementation and Buffer.
Implementations§
Source§impl<C, B> WebTransportSession<C, B>where
C: Connection<B>,
B: Buf,
impl<C, B> WebTransportSession<C, B>where
C: Connection<B>,
B: Buf,
Sourcepub fn session_id(&self) -> SessionId
pub fn session_id(&self) -> SessionId
Returns the session id
Sourcepub async fn accept_bi(&self) -> Option<BidiStream<C::BidiStream, B>>
pub async fn accept_bi(&self) -> Option<BidiStream<C::BidiStream, B>>
Accepts a bidi stream
Sourcepub fn poll_accept_bi(
&self,
cx: &mut Context<'_>,
) -> Poll<Option<BidiStream<C::BidiStream, B>>>
pub fn poll_accept_bi( &self, cx: &mut Context<'_>, ) -> Poll<Option<BidiStream<C::BidiStream, B>>>
Polls for a bidi stream
Sourcepub async fn accept_uni(&self) -> Option<RecvStream<C::RecvStream, B>>
pub async fn accept_uni(&self) -> Option<RecvStream<C::RecvStream, B>>
Accepts a uni stream
Sourcepub fn poll_accept_uni(
&self,
cx: &mut Context<'_>,
) -> Poll<Option<RecvStream<C::RecvStream, B>>>
pub fn poll_accept_uni( &self, cx: &mut Context<'_>, ) -> Poll<Option<RecvStream<C::RecvStream, B>>>
Polls for a uni stream
Sourcepub async fn accept_datagram(&self) -> Option<B>
pub async fn accept_datagram(&self) -> Option<B>
Accepts a datagram
Sourcepub fn poll_accept_datagram(&self, cx: &mut Context<'_>) -> Poll<Option<B>>
pub fn poll_accept_datagram(&self, cx: &mut Context<'_>) -> Poll<Option<B>>
Polls for a datagram
Sourcepub async fn send_datagram(&self, datagram: B) -> Result<(), Error>
pub async fn send_datagram(&self, datagram: B) -> Result<(), Error>
Sends a datagram
Sourcepub async fn open_bi(
&self,
) -> Result<BidiStream<C::BidiStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>
pub async fn open_bi( &self, ) -> Result<BidiStream<C::BidiStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>
Opens a bidi stream
Sourcepub fn poll_open_bi(
&self,
cx: &mut Context<'_>,
) -> Poll<Result<BidiStream<C::BidiStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>>
pub fn poll_open_bi( &self, cx: &mut Context<'_>, ) -> Poll<Result<BidiStream<C::BidiStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>>
Polls to open a bidi stream
Sourcepub async fn open_uni(
&self,
) -> Result<SendStream<C::SendStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>
pub async fn open_uni( &self, ) -> Result<SendStream<C::SendStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>
Opens a uni stream
Sourcepub fn poll_open_uni(
&self,
cx: &mut Context<'_>,
) -> Poll<Result<SendStream<C::SendStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>>
pub fn poll_open_uni( &self, cx: &mut Context<'_>, ) -> Poll<Result<SendStream<C::SendStream, B>, <C::OpenStreams as OpenStreams<B>>::OpenError>>
Polls to open a uni stream
Source§impl<C, B> WebTransportSession<C, B>where
C: Connection<B>,
B: Buf,
impl<C, B> WebTransportSession<C, B>where
C: Connection<B>,
B: Buf,
Sourcepub fn begin<B2, F, Fut>(
request: &mut Request<B2>,
on_upgrade: F,
) -> Option<Response<()>>
pub fn begin<B2, F, Fut>( request: &mut Request<B2>, on_upgrade: F, ) -> Option<Response<()>>
Begin a WebTransport session upgrade
Sourcepub fn complete(
response: &mut Response<B>,
stream: RequestStream<C::BidiStream, B>,
) -> Result<BoxFuture<'static, Result<(), Error>>, RequestStream<C::BidiStream, B>>
pub fn complete( response: &mut Response<B>, stream: RequestStream<C::BidiStream, B>, ) -> Result<BoxFuture<'static, Result<(), Error>>, RequestStream<C::BidiStream, B>>
Completes the WebTransport upgrade
Trait Implementations§
Auto Trait Implementations§
impl<C, B> !Freeze for WebTransportSession<C, B>
impl<C, B> RefUnwindSafe for WebTransportSession<C, B>where
<C as OpenStreams<B>>::BidiStream: RefUnwindSafe,
B: RefUnwindSafe,
impl<C, B> Send for WebTransportSession<C, B>
impl<C, B> Sync for WebTransportSession<C, B>
impl<C, B> Unpin for WebTransportSession<C, B>where
<C as Connection<B>>::OpenStreams: Unpin,
impl<C, B> UnwindSafe for WebTransportSession<C, B>where
<C as OpenStreams<B>>::BidiStream: UnwindSafe,
B: 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