Skip to main content

StreamType

Enum StreamType 

Source
#[repr(u64)]
pub enum StreamType { Datagram = 1, Subgroup = 4, Fetch = 5, }
Expand description

Every type ID this draft’s data plane assigns, from the single table it keeps them in.

Draft-07 Section 7 numbers streams and datagrams together. Its Table 5 is headed “Stream Type” and holds all three assignments — 0x1 OBJECT_DATAGRAM, 0x4 STREAM_HEADER_SUBGROUP, 0x5 FETCH_HEADER — under one sentence: “All unidirectional MOQT streams, as well as all datagrams, start with a variable-length integer indicating the type of the stream in question.” Draft-08 is where the two split into tables of their own, after which the numbers are reused across them independently.

One shared space is what makes 0x1 an assigned value at the head of a unidirectional stream rather than an unknown one. Such a stream is still refused — a datagram type says nothing about how to read a stream — but it is refused as a stream this reader cannot read, not under the unknown-stream-type rule, which would end the session.

StreamType::from_id answers over that one table. Callers that need the narrower question, which of these a particular reader will accept, ask stream_type_error instead.

Variants§

§

Datagram = 1

Datagram stream type (0x01).

§

Subgroup = 4

Subgroup stream type (0x04).

§

Fetch = 5

Fetch stream type (0x05).

Implementations§

Source§

impl StreamType

Source

pub fn from_id(id: u64) -> Option<Self>

Convert a raw stream type ID to a StreamType, if valid.

Trait Implementations§

Source§

impl Clone for StreamType

Source§

fn clone(&self) -> StreamType

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for StreamType

Source§

impl Debug for StreamType

Source§

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

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

impl Eq for StreamType

Source§

impl PartialEq for StreamType

Source§

fn eq(&self, other: &StreamType) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for StreamType

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.