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§
§impl<'a> Any<'a>
impl<'a> Any<'a>
pub 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
pub 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
pub 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>,
§impl<'a> Any<'a>
impl<'a> Any<'a>
pub 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
).
pub 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
).
pub fn boolean(self) -> Result<Boolean, Error>
pub fn boolean(self) -> Result<Boolean, Error>
Attempt to convert object to Boolean
(ASN.1 type: BOOLEAN
).
pub 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
).
pub fn enumerated(self) -> Result<Enumerated, Error>
pub fn enumerated(self) -> Result<Enumerated, Error>
Attempt to convert object to Enumerated
(ASN.1 type: ENUMERATED
).
pub fn generalizedtime(self) -> Result<GeneralizedTime, Error>
pub fn generalizedtime(self) -> Result<GeneralizedTime, Error>
Attempt to convert object to GeneralizedTime
(ASN.1 type: GeneralizedTime
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub 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
).
pub fn string(self) -> Result<String, Error>
pub fn string(self) -> Result<String, Error>
Attempt to convert object to String
(ASN.1 type: UTF8String
).
pub 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
).
pub 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
).
pub fn utctime(self) -> Result<UtcTime, Error>
pub fn utctime(self) -> Result<UtcTime, Error>
Attempt to convert object to UtcTime
(ASN.1 type: UTCTime
).
pub 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
).
pub 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
).
pub 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§
§impl CheckDerConstraints for Any<'_>
impl CheckDerConstraints for Any<'_>
§impl ToDer for Any<'_>
impl ToDer for Any<'_>
§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
§fn to_der_len(&self) -> Result<usize, Error>
fn to_der_len(&self) -> Result<usize, Error>
§fn write_der_header(
&self,
writer: &mut dyn Write
) -> Result<usize, SerializeError>
fn write_der_header( &self, writer: &mut dyn Write ) -> Result<usize, SerializeError>
§fn write_der_content(
&self,
writer: &mut dyn Write
) -> Result<usize, SerializeError>
fn write_der_content( &self, writer: &mut dyn Write ) -> Result<usize, SerializeError>
§fn to_der_vec(&self) -> Result<Vec<u8>, SerializeError>
fn to_der_vec(&self) -> Result<Vec<u8>, SerializeError>
Vec<u8>
.§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.§impl<'a> TryFrom<Any<'a>> for EmbeddedPdv<'a>
impl<'a> TryFrom<Any<'a>> for EmbeddedPdv<'a>
§impl<'a> TryFrom<Any<'a>> for EndOfContent
impl<'a> TryFrom<Any<'a>> for EndOfContent
§impl<'a> TryFrom<Any<'a>> for Enumerated
impl<'a> TryFrom<Any<'a>> for Enumerated
§impl<'a> TryFrom<Any<'a>> for GeneralString<'a>
impl<'a> TryFrom<Any<'a>> for GeneralString<'a>
§impl<'a> TryFrom<Any<'a>> for GeneralizedTime
impl<'a> TryFrom<Any<'a>> for GeneralizedTime
§impl<'a> TryFrom<Any<'a>> for GraphicString<'a>
impl<'a> TryFrom<Any<'a>> for GraphicString<'a>
§impl<'a> TryFrom<Any<'a>> for NumericString<'a>
impl<'a> TryFrom<Any<'a>> for NumericString<'a>
§impl<'a> TryFrom<Any<'a>> for ObjectDescriptor<'a>
impl<'a> TryFrom<Any<'a>> for ObjectDescriptor<'a>
§impl<'a> TryFrom<Any<'a>> for OctetString<'a>
impl<'a> TryFrom<Any<'a>> for OctetString<'a>
§impl<'a> TryFrom<Any<'a>> for PrintableString<'a>
impl<'a> TryFrom<Any<'a>> for PrintableString<'a>
§impl<'a, T> TryFrom<Any<'a>> for SequenceOf<T>where
T: FromBer<'a>,
impl<'a, T> TryFrom<Any<'a>> for SequenceOf<T>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>,
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, Implicit, CLASS, TAG>where
T: TryFrom<Any<'a>, Error = Error> + Tagged,
impl<'a, T, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, Implicit, CLASS, TAG>where T: TryFrom<Any<'a>, Error = Error> + Tagged,
§impl<'a> TryFrom<Any<'a>> for TeletexString<'a>
impl<'a> TryFrom<Any<'a>> for TeletexString<'a>
§impl<'a> TryFrom<Any<'a>> for UniversalString<'a>
impl<'a> TryFrom<Any<'a>> for UniversalString<'a>
§impl<'a> TryFrom<Any<'a>> for Utf8String<'a>
impl<'a> TryFrom<Any<'a>> for Utf8String<'a>
§impl<'a> TryFrom<Any<'a>> for VideotexString<'a>
impl<'a> TryFrom<Any<'a>> for VideotexString<'a>
§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> 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§
§impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for Twhere T: 'a,
§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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
source§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>
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>
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>
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 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);