Struct parsec_interface::requests::common::wire_header_1_0::WireHeader [−][src]
pub struct WireHeader {
pub flags: u16,
pub provider: u8,
pub session: u64,
pub content_type: u8,
pub accept_type: u8,
pub auth_type: u8,
pub body_len: u32,
pub auth_len: u16,
pub opcode: u32,
pub status: u16,
pub reserved1: u8,
pub reserved2: u8,
}Expand description
Raw representation of a common request/response header, as defined for the wire format.
Serialisation and deserialisation are handled by serde, also in tune with the
wire format (i.e. little-endian, native encoding).
Fields
flags: u16Implementation-defined flags. Not used in Parsec currently. Must be present, but must be zero.
provider: u8Provider ID value
session: u64Session handle
content_type: u8Content type: defines how the request body should be processed.
accept_type: u8Accept type: defines how the service should provide its response.
auth_type: u8Authentication type.
body_len: u32Number of bytes of content.
auth_len: u16Number of bytes of authentication.
opcode: u32Opcode of the operation to perform.
status: u16Response status of the request.
reserved1: u8Reserved byte. Currently unused. Must be present. Must be zero.
reserved2: u8Reserved byte. Currently unused. Must be present. Must be zero.
Implementations
Serialise the request header and write the corresponding bytes to the given stream.
Errors
- if marshalling the header fails,
ResponseStatus::InvalidEncodingis returned. - if writing the header bytes fails,
ResponseStatus::ConnectionErroris returned.
Deserialise a request header from the given stream.
Errors
- if either the magic number, the header size or the reserved fields
are invalid values,
ResponseStatus::InvalidHeaderis returned. - if reading the fields after magic number and header size fails,
ResponseStatus::ConnectionErroris returned- the read may fail due to a timeout if not enough bytes are sent across
- if the parsed bytes cannot be unmarshalled into the contained fields,
ResponseStatus::InvalidEncodingis returned. - if the wire protocol version used is different than 1.0
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Conversion from native to raw request header.
This is required in order to bring the contents of the header in a state which can be serialized.
Performs the conversion.
Conversion from native to raw response header.
This is required in order to bring the contents of the header in a state which can be serialized.
Performs the conversion.
Conversion from the raw to native request header.
This conversion must be done before a Request value can be populated.
Conversion from the raw to native response header.
This conversion must be done before a Response value can be populated.
type Error = ResponseStatus
type Error = ResponseStatus
The type returned in the event of a conversion error.
Performs the conversion.
Auto Trait Implementations
impl RefUnwindSafe for WireHeader
impl Send for WireHeader
impl Sync for WireHeader
impl Unpin for WireHeader
impl UnwindSafe for WireHeader
Blanket Implementations
Mutably borrows from an owned value. Read more