Struct onc_rpc::CallBody

source ·
pub struct CallBody<T, P>
where T: AsRef<[u8]>,
{ /* private fields */ }
Expand description

A request invoking an RPC.

This structure is the Rust equivalent of the call_body structure defined in the RFC. The rpcvers field (representing the RPC protocol version) is hard coded to 2.

Implementations§

source§

impl<T, P> CallBody<T, P>
where T: AsRef<[u8]>, P: AsRef<[u8]>,

source

pub fn new( program: u32, program_version: u32, procedure: u32, auth_credentials: AuthFlavor<T>, auth_verifier: AuthFlavor<T>, payload: P ) -> Self

Construct a new RPC invocation request.

source

pub fn serialise_into<W: Write>(&self, buf: W) -> Result<(), Error>

Serialises this CallBody into buf, advancing the cursor position by CallBody::serialised_len() bytes.

source

pub fn serialised_len(&self) -> u32

Returns the on-wire length of this call body once serialised.

source

pub fn rpc_version(&self) -> u32

Returns the RPC version of this request.

This crate supports the ONC RPC version 2 only.

source

pub fn program(&self) -> u32

Returns the program identifier in this request.

source

pub fn program_version(&self) -> u32

The version of the program to be invoked.

source

pub fn procedure(&self) -> u32

The program procedure number identifying the RPC to invoke.

source

pub fn auth_credentials(&self) -> &AuthFlavor<T>

The credentials to use for authenticating the request.

source

pub fn auth_verifier(&self) -> &AuthFlavor<T>

The verifier that should be used to validate the authentication credentials.

The RFC says the following about the verifier:

The purpose of the authentication verifier is to validate the
authentication credential.  Note that these two items are
historically separate, but are always used together as one logical
entity.
source

pub fn payload(&self) -> &P

Returns a reference to the opaque message payload bytes.

Trait Implementations§

source§

impl<T, P: Debug> Debug for CallBody<T, P>
where T: AsRef<[u8]> + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T, P: PartialEq> PartialEq for CallBody<T, P>
where T: AsRef<[u8]> + PartialEq,

source§

fn eq(&self, other: &CallBody<T, P>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a> TryFrom<&'a [u8]> for CallBody<&'a [u8], &'a [u8]>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(v: &'a [u8]) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Bytes> for CallBody<Bytes, Bytes>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(v: Bytes) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<T, P> StructuralPartialEq for CallBody<T, P>
where T: AsRef<[u8]>,

Auto Trait Implementations§

§

impl<T, P> Freeze for CallBody<T, P>
where P: Freeze, T: Freeze,

§

impl<T, P> RefUnwindSafe for CallBody<T, P>

§

impl<T, P> Send for CallBody<T, P>
where P: Send, T: Send,

§

impl<T, P> Sync for CallBody<T, P>
where P: Sync, T: Sync,

§

impl<T, P> Unpin for CallBody<T, P>
where P: Unpin, T: Unpin,

§

impl<T, P> UnwindSafe for CallBody<T, P>
where P: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.