Skip to main content

Request

Struct Request 

Source
pub struct Request<S: Session> { /* private fields */ }
Expand description

A paused server-side handshake.

Returned by Server::accept_request once the peer’s advertised path is known but before the session is granted anything. Set the origins to serve, then call ok to complete the handshake, or close to reject it. Modeled on the WebTransport Request in moq-native.

Implementations§

Source§

impl<S: Session> Request<S>

Source

pub fn path(&self) -> &str

The request path the client advertised in its SETUP.

Empty when the client advertised none: either it sent an empty path, or the version carries none in-band (lite 01-04). Those mean the same thing, so the wire distinction isn’t surfaced. Populated for moq-lite-05 and every moq-transport draft we speak. See the note on Server::accept_request.

Source

pub fn role(&self) -> Option<Role>

The single Role the client advertised in its SETUP, or None for a bidirectional session.

Only moq-lite-05 carries a role, so None covers three cases that the wire doesn’t distinguish: an older version, a client that omitted the parameter, and a client that explicitly advertised both directions. All three mean the same thing (the client may publish and subscribe), so authorize on what the token grants. See the note on Server::accept_request.

Source

pub fn with_publisher(self, publish: impl Consume<Consumer>) -> Self

Publish to the connected client. Overrides any value from the Server builder; typically set after inspecting path.

Source

pub fn with_subscriber(self, subscribe: Producer) -> Self

Subscribe to the connected client. Overrides any value from the Server builder.

Source

pub fn with_stats(self, stats: Session) -> Self

Set the per-connection stats::Session context. Overrides any value from the Server builder.

Source

pub async fn ok(self) -> Result<(Session, Driver), Error>

Accept the session, returning the Session and the Driver that runs its protocol work.

Source

pub fn close(self, err: Error)

Reject the session, closing the transport with err’s wire code.

Trait Implementations§

Source§

impl<S: Session> Drop for Request<S>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<S> Freeze for Request<S>
where S: Freeze, <S as Session>::RecvStream: Freeze, <S as Session>::SendStream: Freeze,

§

impl<S> RefUnwindSafe for Request<S>

§

impl<S> Send for Request<S>

§

impl<S> Sync for Request<S>
where <S as Session>::RecvStream: Sync, <S as Session>::SendStream: Sync,

§

impl<S> Unpin for Request<S>
where S: Unpin, <S as Session>::RecvStream: Unpin, <S as Session>::SendStream: Unpin,

§

impl<S> UnsafeUnpin for Request<S>

§

impl<S> UnwindSafe for Request<S>

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> MaybeSend for T
where T: Send,

Source§

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

Source§

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

Source§

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

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<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