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§
Sourceconst TYPE: PacketType
const TYPE: PacketType
Type of the packet (one of authentication, authorization, or accounting).
Sourceconst REQUIRED_FIELDS_LENGTH: usize
const REQUIRED_FIELDS_LENGTH: usize
Length of body just including required fields.
Provided Methods§
Sourcefn required_minor_version(&self) -> Option<MinorVersion>
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<'_>
impl PacketBody for tacacs_plus_protocol::accounting::Reply<'_>
const TYPE: PacketType = PacketType::Accounting
const REQUIRED_FIELDS_LENGTH: usize = 5usize
Source§impl PacketBody for tacacs_plus_protocol::accounting::Request<'_>
impl PacketBody for tacacs_plus_protocol::accounting::Request<'_>
const TYPE: PacketType = PacketType::Accounting
const REQUIRED_FIELDS_LENGTH: usize = 9usize
Source§impl PacketBody for Continue<'_>
impl PacketBody for Continue<'_>
const TYPE: PacketType = PacketType::Authentication
const REQUIRED_FIELDS_LENGTH: usize = 5usize
Source§impl PacketBody for tacacs_plus_protocol::authentication::Reply<'_>
impl PacketBody for tacacs_plus_protocol::authentication::Reply<'_>
const TYPE: PacketType = PacketType::Authentication
const REQUIRED_FIELDS_LENGTH: usize = 6usize
Source§impl PacketBody for Start<'_>
impl PacketBody for Start<'_>
const TYPE: PacketType = PacketType::Authentication
const REQUIRED_FIELDS_LENGTH: usize = 8usize
Source§impl PacketBody for tacacs_plus_protocol::authorization::Reply<'_>
impl PacketBody for tacacs_plus_protocol::authorization::Reply<'_>
const TYPE: PacketType = PacketType::Authorization
const REQUIRED_FIELDS_LENGTH: usize = 6usize
Source§impl PacketBody for tacacs_plus_protocol::authorization::Request<'_>
impl PacketBody for tacacs_plus_protocol::authorization::Request<'_>
const TYPE: PacketType = PacketType::Authorization
const REQUIRED_FIELDS_LENGTH: usize = 8usize
Source§impl<B: FromBorrowedBody> PacketBody for B
Available on crate feature std only.
impl<B: FromBorrowedBody> PacketBody for B
Available on crate feature
std only.