Struct parsec_interface::requests::common::wire_header_1_0::WireHeader
source · [−]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
sourceimpl WireHeader
impl WireHeader
sourcepub fn write_to_stream<W: Write>(&self, stream: &mut W) -> Result<()>
pub fn write_to_stream<W: Write>(&self, stream: &mut W) -> Result<()>
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.
sourcepub fn read_from_stream<R: Read>(stream: &mut R) -> Result<WireHeader>
pub fn read_from_stream<R: Read>(stream: &mut R) -> Result<WireHeader>
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
sourceimpl Clone for WireHeader
impl Clone for WireHeader
sourcefn clone(&self) -> WireHeader
fn clone(&self) -> WireHeader
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for WireHeader
impl Debug for WireHeader
sourceimpl<'de> Deserialize<'de> for WireHeader
impl<'de> Deserialize<'de> for WireHeader
sourcefn 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
sourceimpl From<RequestHeader> for Raw
impl From<RequestHeader> for Raw
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.
sourcefn from(header: RequestHeader) -> Self
fn from(header: RequestHeader) -> Self
Performs the conversion.
sourceimpl From<ResponseHeader> for Raw
impl From<ResponseHeader> for Raw
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.
sourcefn from(header: ResponseHeader) -> Self
fn from(header: ResponseHeader) -> Self
Performs the conversion.
sourceimpl Serialize for WireHeader
impl Serialize for WireHeader
sourceimpl TryFrom<WireHeader> for RequestHeader
impl TryFrom<WireHeader> for RequestHeader
Conversion from the raw to native request header.
This conversion must be done before a Request
value can be populated.
sourceimpl TryFrom<WireHeader> for ResponseHeader
impl TryFrom<WireHeader> for ResponseHeader
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.
sourcefn try_from(header: Raw) -> Result<ResponseHeader>
fn try_from(header: Raw) -> Result<ResponseHeader>
Performs the conversion.
impl Copy for WireHeader
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more