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

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

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

Associated Types

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

Required Methods

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.

Tests if the given flag is set for the frame.

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

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

Sets the given flag for the frame.

Returns a Vec with the serialized representation of the frame.

Implementors

impl Frame for DataFrame
[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.

Tests if the given flag is set for the frame.

Sets the given flag for the frame.

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

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

Returns a Vec with the serialized representation of the frame.

impl Frame for HeadersFrame
[src]

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

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.

Tests if the given flag is set for the frame.

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

A SettingsFrame always has to be associated to stream 0.

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

Sets the given flag for the frame.

Returns a Vec with the serialized representation of the frame.

Panics

If the HeadersFlag::Priority flag was set, but no stream dependency information is given (i.e. stream_dep is None).

impl Frame for SettingsFrame
[src]

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

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.

Tests if the given flag is set for the frame.

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

A SettingsFrame always has to be associated to stream 0.

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

Sets the given flag for the frame.

Returns a Vec with the serialized representation of the frame.