octseq::octets

Trait OctetsFrom

Source
pub trait OctetsFrom<Source>: Sized {
    type Error: Into<ShortBuf>;

    // Required method
    fn try_octets_from(source: Source) -> Result<Self, Self::Error>;

    // Provided method
    fn octets_from(source: Source) -> Self
       where Self::Error: Into<Infallible> { ... }
}
Expand description

Convert a type from one octets type to another.

This trait allows creating a value of a type that is generic over an octets sequence from an identical value using a different type of octets sequence.

This is different from just From in that the conversion may fail if the source sequence is longer than the space available for the target type.

Required Associated Types§

Required Methods§

Source

fn try_octets_from(source: Source) -> Result<Self, Self::Error>

Performs the conversion.

Provided Methods§

Source

fn octets_from(source: Source) -> Self
where Self::Error: Into<Infallible>,

Performs an infallible conversion.

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.

Implementations on Foreign Types§

Source§

impl<'a, Source: AsRef<[u8]> + 'a> OctetsFrom<&'a Source> for &'a [u8]

Source§

impl<Source> OctetsFrom<Source> for Bytes
where Self: From<Source>,

Source§

type Error = Infallible

Source§

fn try_octets_from(source: Source) -> Result<Self, Self::Error>

Source§

impl<Source> OctetsFrom<Source> for BytesMut
where Self: From<Source>,

Source§

type Error = Infallible

Source§

fn try_octets_from(source: Source) -> Result<Self, Self::Error>

Source§

impl<Source> OctetsFrom<Source> for Vec<u8>
where Self: From<Source>,

Source§

type Error = Infallible

Source§

fn try_octets_from(source: Source) -> Result<Self, Self::Error>

Source§

impl<Source, A> OctetsFrom<Source> for SmallVec<A>
where Source: AsRef<[u8]>, A: Array<Item = u8>,

Source§

type Error = Infallible

Source§

fn try_octets_from(source: Source) -> Result<Self, Self::Error>

Implementors§

Source§

impl<Octs, SrcOcts> OctetsFrom<Str<SrcOcts>> for Str<Octs>
where Octs: OctetsFrom<SrcOcts>,

Source§

type Error = <Octs as OctetsFrom<SrcOcts>>::Error

Source§

impl<Source: AsRef<[u8]>, const N: usize> OctetsFrom<Source> for Array<N>

impl OctetsFrom<Aaaa> for Aaaa

impl OctetsFrom<A> for A

impl<Name, Data, SrcName, SrcData> OctetsFrom<Record<SrcName, SrcData>> for Record<Name, Data>
where Name: OctetsFrom<SrcName>, Data: OctetsFrom<SrcData>, Data::Error: From<Name::Error>,

impl<Name, SrcName> OctetsFrom<Chain<SrcName>> for Chain<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Question<SrcName>> for Question<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Dname<SrcName>> for Dname<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<ProtoRrsig<SrcName>> for ProtoRrsig<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Cname<SrcName>> for Cname<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Mb<SrcName>> for Mb<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Md<SrcName>> for Md<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Mf<SrcName>> for Mf<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Mg<SrcName>> for Mg<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Minfo<SrcName>> for Minfo<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Mr<SrcName>> for Mr<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Mx<SrcName>> for Mx<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Ns<SrcName>> for Ns<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Ptr<SrcName>> for Ptr<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Soa<SrcName>> for Soa<Name>
where Name: OctetsFrom<SrcName>,

impl<Name, SrcName> OctetsFrom<Srv<SrcName>> for Srv<Name>
where Name: OctetsFrom<SrcName>,

impl<O, OO> OctetsFrom<Alpn<O>> for Alpn<OO>
where OO: OctetsFrom<O>,

impl<O, OO> OctetsFrom<DohPath<O>> for DohPath<OO>
where OO: OctetsFrom<O>,

impl<O, OO> OctetsFrom<Ech<O>> for Ech<OO>
where OO: OctetsFrom<O>,

impl<O, OO> OctetsFrom<Ipv4Hint<O>> for Ipv4Hint<OO>
where OO: OctetsFrom<O>,

impl<O, OO> OctetsFrom<Ipv6Hint<O>> for Ipv6Hint<OO>
where OO: OctetsFrom<O>,

impl<O, OO> OctetsFrom<Mandatory<O>> for Mandatory<OO>
where OO: OctetsFrom<O>,

impl<Octs, Name, SrcOcts, SrcName> OctetsFrom<AllOptData<SrcOcts, SrcName>> for AllOptData<Octs, Name>
where Octs: OctetsFrom<SrcOcts>, Name: OctetsFrom<SrcName, Error = Octs::Error>,

impl<Octs, SrcOctets, Name, SrcName> OctetsFrom<Tsig<SrcOctets, SrcName>> for Tsig<Octs, Name>
where Octs: OctetsFrom<SrcOctets>, Name: OctetsFrom<SrcName>, Octs::Error: From<Name::Error>,

impl<Octs, SrcOcts> OctetsFrom<CharStr<SrcOcts>> for CharStr<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Message<SrcOcts>> for Message<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Name<SrcOcts>> for Name<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<RelativeName<SrcOcts>> for RelativeName<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<ExtendedError<SrcOcts>> for ExtendedError<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<KeyTag<SrcOcts>> for KeyTag<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Nsid<SrcOcts>> for Nsid<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Padding<SrcOcts>> for Padding<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Opt<SrcOcts>> for Opt<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<OptRecord<SrcOcts>> for OptRecord<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<UnknownOptData<SrcOcts>> for UnknownOptData<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<UnknownRecordData<SrcOcts>> for UnknownRecordData<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Cdnskey<SrcOcts>> for Cdnskey<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Cds<SrcOcts>> for Cds<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Dnskey<SrcOcts>> for Dnskey<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Ds<SrcOcts>> for Ds<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<RtypeBitmap<SrcOcts>> for RtypeBitmap<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Nsec3<SrcOcts>> for Nsec3<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Nsec3Salt<SrcOcts>> for Nsec3Salt<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Nsec3param<SrcOcts>> for Nsec3param<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<OwnerHash<SrcOcts>> for OwnerHash<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Hinfo<SrcOcts>> for Hinfo<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Null<SrcOcts>> for Null<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts> OctetsFrom<Txt<SrcOcts>> for Txt<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Octs, SrcOcts, Name, SrcName> OctetsFrom<AllRecordData<SrcOcts, SrcName>> for AllRecordData<Octs, Name>
where Octs: OctetsFrom<SrcOcts>, Name: OctetsFrom<SrcName, Error = Octs::Error>,

impl<Octs, SrcOcts, Name, SrcName> OctetsFrom<ZoneRecordData<SrcOcts, SrcName>> for ZoneRecordData<Octs, Name>
where Octs: OctetsFrom<SrcOcts>, Name: OctetsFrom<SrcName, Error = Octs::Error>,

impl<Octs, SrcOcts, Name, SrcName> OctetsFrom<Nsec<SrcOcts, SrcName>> for Nsec<Octs, Name>
where Octs: OctetsFrom<SrcOcts>, Name: OctetsFrom<SrcName, Error = Octs::Error>,

impl<Octs, SrcOcts, Name, SrcName> OctetsFrom<Rrsig<SrcOcts, SrcName>> for Rrsig<Octs, Name>
where Octs: OctetsFrom<SrcOcts>, Name: OctetsFrom<SrcName>, Octs::Error: From<Name::Error>,

impl<SrcOcts, Octs> OctetsFrom<SvcParams<SrcOcts>> for SvcParams<Octs>
where Octs: OctetsFrom<SrcOcts>,

impl<Variant, O, OO> OctetsFrom<Understood<Variant, O>> for Understood<Variant, OO>
where OO: OctetsFrom<O>,

impl<Variant, Octs, SrcOctets, Name, SrcName> OctetsFrom<SvcbRdata<Variant, SrcOctets, SrcName>> for SvcbRdata<Variant, Octs, Name>
where Octs: OctetsFrom<SrcOctets>, Name: OctetsFrom<SrcName, Error = Octs::Error>,