pub trait Queryable: Sized {
type Args;
// Required methods
fn decode(
decoder: &Decoder,
args: &Self::Args,
buf: &[u8],
) -> Result<Self, DecodeError>;
fn check_descriptor(
ctx: &DescriptorContext<'_>,
type_pos: TypePos,
) -> Result<Self::Args, DescriptorMismatch>;
// Provided method
fn decode_optional(
decoder: &Decoder,
args: &Self::Args,
buf: Option<&[u8]>,
) -> Result<Self, DecodeError> { ... }
}Required Associated Types§
Sourcetype Args
type Args
Data returned by Queryable::check_descriptor, that can be used during decoding. For example, this is used to pass the order of object pointers (which is sent in type descriptors) to decode function.
Required Methods§
fn decode( decoder: &Decoder, args: &Self::Args, buf: &[u8], ) -> Result<Self, DecodeError>
fn check_descriptor( ctx: &DescriptorContext<'_>, type_pos: TypePos, ) -> Result<Self::Args, DescriptorMismatch>
Provided Methods§
fn decode_optional( decoder: &Decoder, args: &Self::Args, buf: Option<&[u8]>, ) -> Result<Self, DecodeError>
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.