pub struct Frame<M = Message> {
pub version: Version,
pub stream: StreamId,
pub data: FrameData<M>,
}Expand description
Protocol frame.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 'r' | 'a' | 'd' | 0x1 | Version
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |T T T I| Stream ID
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| …| Data (variable size)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Note that the last four bits of the Stream ID encode the Stream Type and Initiator. The first three bits of the last four bits encode the Stream Type, while the last bit encodes the Initiator.
Fields§
§version: VersionThe protocol version.
stream: StreamIdThe stream identifier.
data: FrameData<M>The frame payload.
Implementations§
Trait Implementations§
impl<M: Eq> Eq for Frame<M>
impl<M: PartialEq> StructuralPartialEq for Frame<M>
Auto Trait Implementations§
impl<M> Freeze for Frame<M>
impl<M> RefUnwindSafe for Frame<M>where
FrameData<M>: RefUnwindSafe,
impl<M> Send for Frame<M>
impl<M> Sync for Frame<M>
impl<M> Unpin for Frame<M>
impl<M> UnsafeUnpin for Frame<M>where
FrameData<M>: UnsafeUnpin,
impl<M> UnwindSafe for Frame<M>where
FrameData<M>: 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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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