[][src]Trait solicit::http::frame::Frame

pub trait Frame<'a>: Sized {
    type FlagType: Flag;
    fn from_raw(raw_frame: &'a RawFrame<'a>) -> Option<Self>;
fn is_set(&self, flag: Self::FlagType) -> bool;
fn get_stream_id(&self) -> StreamId;
fn get_header(&self) -> FrameHeader; }

A trait that all HTTP/2 frame structs need to implement.

Associated Types

type FlagType: Flag

The type that represents the flags that the particular Frame can take. This makes sure that only valid Flags are used with each Frame.

Loading content...

Required methods

fn from_raw(raw_frame: &'a RawFrame<'a>) -> Option<Self>

Creates a new Frame from the given RawFrame (i.e. header and payload), if possible.

Returns

None if a valid Frame cannot be constructed from the given RawFrame. Some reasons why this may happen is a wrong frame type in the header, a body that cannot be decoded according to the particular frame's rules, etc.

Otherwise, returns a newly constructed Frame.

fn is_set(&self, flag: Self::FlagType) -> bool

Tests if the given flag is set for the frame.

fn get_stream_id(&self) -> StreamId

Returns the StreamId of the stream to which the frame is associated

fn get_header(&self) -> FrameHeader

Returns a FrameHeader based on the current state of the Frame.

Loading content...

Implementors

impl<'a> Frame<'a> for DataFrame<'a>[src]

type FlagType = DataFlag

fn from_raw(raw_frame: &'a RawFrame<'a>) -> Option<DataFrame<'a>>[src]

Creates a new DataFrame from the given RawFrame (i.e. header and payload), if possible. Returns None if a valid DataFrame cannot be constructed from the given RawFrame.

fn is_set(&self, flag: DataFlag) -> bool[src]

Tests if the given flag is set for the frame.

fn get_stream_id(&self) -> StreamId[src]

Returns the StreamId of the stream to which the frame is associated.

fn get_header(&self) -> FrameHeader[src]

Returns a FrameHeader based on the current state of the frame.

impl<'a> Frame<'a> for GoawayFrame<'a>[src]

type FlagType = NoFlag

impl<'a> Frame<'a> for HeadersFrame<'a>[src]

type FlagType = HeadersFlag

The type that represents the flags that the particular Frame can take. This makes sure that only valid Flags are used with each Frame.

fn from_raw(raw_frame: &'a RawFrame) -> Option<HeadersFrame<'a>>[src]

Creates a new HeadersFrame with the given RawFrame (i.e. header and payload), if possible.

Returns

None if a valid HeadersFrame cannot be constructed from the given RawFrame. The stream ID must not be 0.

Otherwise, returns a newly constructed HeadersFrame.

fn is_set(&self, flag: HeadersFlag) -> bool[src]

Tests if the given flag is set for the frame.

fn get_stream_id(&self) -> StreamId[src]

Returns the StreamId of the stream to which the frame is associated.

A SettingsFrame always has to be associated to stream 0.

fn get_header(&self) -> FrameHeader[src]

Returns a FrameHeader based on the current state of the Frame.

impl<'a> Frame<'a> for PingFrame[src]

type FlagType = PingFlag

impl<'a> Frame<'a> for RstStreamFrame[src]

type FlagType = NoFlag

impl<'a> Frame<'a> for SettingsFrame[src]

type FlagType = SettingsFlag

The type that represents the flags that the particular Frame can take. This makes sure that only valid Flags are used with each Frame.

fn from_raw(raw_frame: &RawFrame) -> Option<SettingsFrame>[src]

Creates a new SettingsFrame with the given RawFrame (i.e. header and payload), if possible.

Returns

None if a valid SettingsFrame cannot be constructed from the given RawFrame. The stream ID must be 0 in order for the frame to be valid. If the ACK flag is set, there MUST not be a payload. The total payload length must be multiple of 6.

Otherwise, returns a newly constructed SettingsFrame.

fn is_set(&self, flag: SettingsFlag) -> bool[src]

Tests if the given flag is set for the frame.

fn get_stream_id(&self) -> StreamId[src]

Returns the StreamId of the stream to which the frame is associated.

A SettingsFrame always has to be associated to stream 0.

fn get_header(&self) -> FrameHeader[src]

Returns a FrameHeader based on the current state of the Frame.

impl<'a> Frame<'a> for WindowUpdateFrame[src]

type FlagType = NoFlag

Loading content...