PacketBody

Trait PacketBody 

Source
pub trait PacketBody: Sealed {
    const TYPE: PacketType;
    const REQUIRED_FIELDS_LENGTH: usize;

    // Provided method
    fn required_minor_version(&self) -> Option<MinorVersion> { ... }
}
Expand description

A type that can be treated as a TACACS+ protocol packet body.

This trait is sealed per the Rust API guidelines, so it cannot be implemented by external types.

Required Associated Constants§

Source

const TYPE: PacketType

Type of the packet (one of authentication, authorization, or accounting).

Source

const REQUIRED_FIELDS_LENGTH: usize

Length of body just including required fields.

Provided Methods§

Source

fn required_minor_version(&self) -> Option<MinorVersion>

Required protocol minor version based on the contents of the packet body.

This is used since AuthenticationMethods are partitioned by protocol minor version.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl PacketBody for tacacs_plus_protocol::accounting::Reply<'_>

Source§

const TYPE: PacketType = PacketType::Accounting

Source§

const REQUIRED_FIELDS_LENGTH: usize = 5usize

Source§

impl PacketBody for tacacs_plus_protocol::accounting::Request<'_>

Source§

const TYPE: PacketType = PacketType::Accounting

Source§

const REQUIRED_FIELDS_LENGTH: usize = 9usize

Source§

impl PacketBody for Continue<'_>

Source§

const TYPE: PacketType = PacketType::Authentication

Source§

const REQUIRED_FIELDS_LENGTH: usize = 5usize

Source§

impl PacketBody for tacacs_plus_protocol::authentication::Reply<'_>

Source§

const TYPE: PacketType = PacketType::Authentication

Source§

const REQUIRED_FIELDS_LENGTH: usize = 6usize

Source§

impl PacketBody for Start<'_>

Source§

const TYPE: PacketType = PacketType::Authentication

Source§

const REQUIRED_FIELDS_LENGTH: usize = 8usize

Source§

impl PacketBody for tacacs_plus_protocol::authorization::Reply<'_>

Source§

const TYPE: PacketType = PacketType::Authorization

Source§

const REQUIRED_FIELDS_LENGTH: usize = 6usize

Source§

impl PacketBody for tacacs_plus_protocol::authorization::Request<'_>

Source§

const TYPE: PacketType = PacketType::Authorization

Source§

const REQUIRED_FIELDS_LENGTH: usize = 8usize

Source§

impl<B: FromBorrowedBody> PacketBody for B

Available on crate feature std only.
Source§

const TYPE: PacketType = <<B as FromBorrowedBody>::Borrowed as PacketBody>::TYPE

Source§

const REQUIRED_FIELDS_LENGTH: usize = <<B as FromBorrowedBody>::Borrowed as PacketBody>::REQUIRED_FIELDS_LENGTH