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: u16

Implementation-defined flags. Not used in Parsec currently. Must be present, but must be zero.

provider: u8

Provider ID value

session: u64

Session handle

content_type: u8

Content type: defines how the request body should be processed.

accept_type: u8

Accept type: defines how the service should provide its response.

auth_type: u8

Authentication type.

body_len: u32

Number of bytes of content.

auth_len: u16

Number of bytes of authentication.

opcode: u32

Opcode of the operation to perform.

status: u16

Response status of the request.

reserved1: u8

Reserved byte. Currently unused. Must be present. Must be zero.

reserved2: u8

Reserved 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::InvalidEncoding is returned.
  • if writing the header bytes fails, ResponseStatus::ConnectionError is 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::InvalidHeader is returned.
  • if reading the fields after magic number and header size fails, ResponseStatus::ConnectionError is 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::InvalidEncoding is returned.
  • if the wire protocol version used is different than 1.0

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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.

Serialize this value into the given Serde serializer. Read more

Conversion from the raw to native request header.

This conversion must be done before a Request value can be populated.

The type returned in the event of a conversion error.

Performs the conversion.

Conversion from the raw to native response header.

This conversion must be done before a Response value can be populated.

The type returned in the event of a conversion error.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.