pub struct Any<'a> {
pub header: Header<'a>,
pub data: &'a [u8],
}
mtls
only.Expand description
The Any
object is not strictly an ASN.1 type, but holds a generic description of any object
that could be encoded.
It contains a header, and either a reference to or owned data for the object content.
Note: this type is only provided in borrowed version (i.e. it can own the inner data).
Fields§
§header: Header<'a>
The object header
data: &'a [u8]
The object contents
Implementations§
source§impl<'a> Any<'a>
impl<'a> Any<'a>
sourcepub const fn new(header: Header<'a>, data: &'a [u8]) -> Any<'a>
pub const fn new(header: Header<'a>, data: &'a [u8]) -> Any<'a>
Create a new Any
from BER/DER header and content
sourcepub const fn from_tag_and_data(tag: Tag, data: &'a [u8]) -> Any<'a>
pub const fn from_tag_and_data(tag: Tag, data: &'a [u8]) -> Any<'a>
Create a new Any
from a tag, and BER/DER content
sourcepub fn with_class(self, class: Class) -> Any<'a>
pub fn with_class(self, class: Class) -> Any<'a>
Update the class of the current object
pub fn parse_ber<T>(&'a self) -> Result<(&'a [u8], T), Err<Error>>where
T: FromBer<'a>,
pub fn parse_der<T>(&'a self) -> Result<(&'a [u8], T), Err<Error>>where
T: FromDer<'a>,
source§impl<'a> Any<'a>
impl<'a> Any<'a>
sourcepub fn bitstring(self) -> Result<BitString<'a>, Error>
pub fn bitstring(self) -> Result<BitString<'a>, Error>
Attempt to convert object to BitString<'a>
(ASN.1 type: BIT STRING
).
sourcepub fn bmpstring(self) -> Result<BmpString<'a>, Error>
pub fn bmpstring(self) -> Result<BmpString<'a>, Error>
Attempt to convert object to BmpString<'a>
(ASN.1 type: BmpString
).
sourcepub fn bool(self) -> Result<bool, Error>
pub fn bool(self) -> Result<bool, Error>
Attempt to convert object to bool
(ASN.1 type: BOOLEAN
).
sourcepub fn boolean(self) -> Result<Boolean, Error>
pub fn boolean(self) -> Result<Boolean, Error>
Attempt to convert object to Boolean
(ASN.1 type: BOOLEAN
).
sourcepub fn embedded_pdv(self) -> Result<EmbeddedPdv<'a>, Error>
pub fn embedded_pdv(self) -> Result<EmbeddedPdv<'a>, Error>
Attempt to convert object to EmbeddedPdv<'a>
(ASN.1 type: EMBEDDED PDV
).
sourcepub fn enumerated(self) -> Result<Enumerated, Error>
pub fn enumerated(self) -> Result<Enumerated, Error>
Attempt to convert object to Enumerated
(ASN.1 type: ENUMERATED
).
sourcepub fn generalizedtime(self) -> Result<GeneralizedTime, Error>
pub fn generalizedtime(self) -> Result<GeneralizedTime, Error>
Attempt to convert object to GeneralizedTime
(ASN.1 type: GeneralizedTime
).
sourcepub fn generalstring(self) -> Result<GeneralString<'a>, Error>
pub fn generalstring(self) -> Result<GeneralString<'a>, Error>
Attempt to convert object to GeneralString<'a>
(ASN.1 type: GeneralString
).
sourcepub fn graphicstring(self) -> Result<GraphicString<'a>, Error>
pub fn graphicstring(self) -> Result<GraphicString<'a>, Error>
Attempt to convert object to GraphicString<'a>
(ASN.1 type: GraphicString
).
sourcepub fn ia5string(self) -> Result<Ia5String<'a>, Error>
pub fn ia5string(self) -> Result<Ia5String<'a>, Error>
Attempt to convert object to Ia5String<'a>
(ASN.1 type: IA5String
).
sourcepub fn integer(self) -> Result<Integer<'a>, Error>
pub fn integer(self) -> Result<Integer<'a>, Error>
Attempt to convert object to Integer<'a>
(ASN.1 type: INTEGER
).
sourcepub fn numericstring(self) -> Result<NumericString<'a>, Error>
pub fn numericstring(self) -> Result<NumericString<'a>, Error>
Attempt to convert object to NumericString<'a>
(ASN.1 type: NumericString
).
sourcepub fn objectdescriptor(self) -> Result<ObjectDescriptor<'a>, Error>
pub fn objectdescriptor(self) -> Result<ObjectDescriptor<'a>, Error>
Attempt to convert object to ObjectDescriptor<'a>
(ASN.1 type: ObjectDescriptor
).
sourcepub fn octetstring(self) -> Result<OctetString<'a>, Error>
pub fn octetstring(self) -> Result<OctetString<'a>, Error>
Attempt to convert object to OctetString<'a>
(ASN.1 type: OCTET STRING
).
sourcepub fn oid(self) -> Result<Oid<'a>, Error>
pub fn oid(self) -> Result<Oid<'a>, Error>
Attempt to convert object to Oid<'a>
(ASN.1 type: OBJECT IDENTIFIER
).
sourcepub fn relative_oid(self) -> Result<Oid<'a>, Error>
pub fn relative_oid(self) -> Result<Oid<'a>, Error>
Attempt to convert object to Oid
(ASN.1 type: RELATIVE-OID
).
sourcepub fn printablestring(self) -> Result<PrintableString<'a>, Error>
pub fn printablestring(self) -> Result<PrintableString<'a>, Error>
Attempt to convert object to PrintableString<'a>
(ASN.1 type: PrintableString
).
sourcepub fn sequence(self) -> Result<Sequence<'a>, Error>
pub fn sequence(self) -> Result<Sequence<'a>, Error>
Attempt to convert object to Sequence<'a>
(ASN.1 type: SEQUENCE
).
sourcepub fn set(self) -> Result<Set<'a>, Error>
pub fn set(self) -> Result<Set<'a>, Error>
Attempt to convert object to Set<'a>
(ASN.1 type: SET
).
sourcepub fn string(self) -> Result<String, Error>
pub fn string(self) -> Result<String, Error>
Attempt to convert object to String
(ASN.1 type: UTF8String
).
sourcepub fn teletexstring(self) -> Result<TeletexString<'a>, Error>
pub fn teletexstring(self) -> Result<TeletexString<'a>, Error>
Attempt to convert object to TeletexString<'a>
(ASN.1 type: TeletexString
).
sourcepub fn universalstring(self) -> Result<UniversalString<'a>, Error>
pub fn universalstring(self) -> Result<UniversalString<'a>, Error>
Attempt to convert object to UniversalString<'a>
(ASN.1 type: UniversalString
).
sourcepub fn utctime(self) -> Result<UtcTime, Error>
pub fn utctime(self) -> Result<UtcTime, Error>
Attempt to convert object to UtcTime
(ASN.1 type: UTCTime
).
sourcepub fn utf8string(self) -> Result<Utf8String<'a>, Error>
pub fn utf8string(self) -> Result<Utf8String<'a>, Error>
Attempt to convert object to Utf8String<'a>
(ASN.1 type: UTF8String
).
sourcepub fn videotexstring(self) -> Result<VideotexString<'a>, Error>
pub fn videotexstring(self) -> Result<VideotexString<'a>, Error>
Attempt to convert object to VideotexString<'a>
(ASN.1 type: VideotexString
).
sourcepub fn visiblestring(self) -> Result<VisibleString<'a>, Error>
pub fn visiblestring(self) -> Result<VisibleString<'a>, Error>
Attempt to convert object to VisibleString<'a>
(ASN.1 type: VisibleString
).
Trait Implementations§
source§impl CheckDerConstraints for Any<'_>
impl CheckDerConstraints for Any<'_>
source§impl ToDer for Any<'_>
impl ToDer for Any<'_>
source§fn write_der_raw(&self, writer: &mut dyn Write) -> Result<usize, SerializeError>
fn write_der_raw(&self, writer: &mut dyn Write) -> Result<usize, SerializeError>
Similar to using to_der
, but uses header without computing length value
source§fn write_der_header(
&self,
writer: &mut dyn Write,
) -> Result<usize, SerializeError>
fn write_der_header( &self, writer: &mut dyn Write, ) -> Result<usize, SerializeError>
source§fn write_der_content(
&self,
writer: &mut dyn Write,
) -> Result<usize, SerializeError>
fn write_der_content( &self, writer: &mut dyn Write, ) -> Result<usize, SerializeError>
source§fn to_der_vec(&self) -> Result<Vec<u8>, SerializeError>
fn to_der_vec(&self) -> Result<Vec<u8>, SerializeError>
Vec<u8>
.source§fn to_der_vec_raw(&self) -> Result<Vec<u8>, SerializeError>
fn to_der_vec_raw(&self) -> Result<Vec<u8>, SerializeError>
to_vec
, but uses provided values without changes.
This can generate an invalid encoding for a DER object.source§impl<'a> TryFrom<Any<'a>> for EmbeddedPdv<'a>
impl<'a> TryFrom<Any<'a>> for EmbeddedPdv<'a>
source§impl<'a> TryFrom<Any<'a>> for EndOfContent
impl<'a> TryFrom<Any<'a>> for EndOfContent
source§impl<'a> TryFrom<Any<'a>> for Enumerated
impl<'a> TryFrom<Any<'a>> for Enumerated
source§impl<'a> TryFrom<Any<'a>> for GeneralString<'a>
impl<'a> TryFrom<Any<'a>> for GeneralString<'a>
source§impl<'a> TryFrom<Any<'a>> for GeneralizedTime
impl<'a> TryFrom<Any<'a>> for GeneralizedTime
source§impl<'a> TryFrom<Any<'a>> for GraphicString<'a>
impl<'a> TryFrom<Any<'a>> for GraphicString<'a>
source§impl<'a> TryFrom<Any<'a>> for NumericString<'a>
impl<'a> TryFrom<Any<'a>> for NumericString<'a>
source§impl<'a> TryFrom<Any<'a>> for ObjectDescriptor<'a>
impl<'a> TryFrom<Any<'a>> for ObjectDescriptor<'a>
source§impl<'a> TryFrom<Any<'a>> for OctetString<'a>
impl<'a> TryFrom<Any<'a>> for OctetString<'a>
source§impl<'a> TryFrom<Any<'a>> for PrintableString<'a>
impl<'a> TryFrom<Any<'a>> for PrintableString<'a>
source§impl<'a, T, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, Explicit, CLASS, TAG>where
T: FromBer<'a>,
impl<'a, T, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, Explicit, CLASS, TAG>where
T: FromBer<'a>,
source§impl<'a, T, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, Implicit, CLASS, TAG>
impl<'a, T, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, Implicit, CLASS, TAG>
source§impl<'a> TryFrom<Any<'a>> for TeletexString<'a>
impl<'a> TryFrom<Any<'a>> for TeletexString<'a>
source§impl<'a> TryFrom<Any<'a>> for UniversalString<'a>
impl<'a> TryFrom<Any<'a>> for UniversalString<'a>
source§impl<'a> TryFrom<Any<'a>> for Utf8String<'a>
impl<'a> TryFrom<Any<'a>> for Utf8String<'a>
source§impl<'a> TryFrom<Any<'a>> for VideotexString<'a>
impl<'a> TryFrom<Any<'a>> for VideotexString<'a>
source§impl<'a> TryFrom<Any<'a>> for VisibleString<'a>
impl<'a> TryFrom<Any<'a>> for VisibleString<'a>
impl<'a> StructuralPartialEq for Any<'a>
Auto Trait Implementations§
impl<'a> Freeze for Any<'a>
impl<'a> RefUnwindSafe for Any<'a>
impl<'a> Send for Any<'a>
impl<'a> Sync for Any<'a>
impl<'a> Unpin for Any<'a>
impl<'a> UnwindSafe for Any<'a>
Blanket Implementations§
source§impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
source§impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.bright_black());
source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.bright_green());
source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.bright_yellow());
source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.bright_magenta());
source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.bright_white());
source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.on_bright_black());
source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.on_bright_green());
source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.on_bright_yellow());
source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlue
.
§Example
println!("{}", value.on_bright_blue());
source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.on_bright_magenta());
source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightCyan
.
§Example
println!("{}", value.on_bright_cyan());
source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.on_bright_white());
source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
source§fn underline(&self) -> Painted<&T>
fn underline(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::Underline
.
§Example
println!("{}", value.underline());
source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
§Example
println!("{}", value.rapid_blink());
source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);