Trait rocket::mtls::x509::der_parser::ber::VisitMut

source ·
pub trait VisitMut<'a> {
Show 31 methods // Provided methods fn visit_ber_mut(&mut self, ber: &mut BerObject<'a>, depth: usize) { ... } fn visit_ber_bitstring_mut( &mut self, ignored: &mut u8, data: &'a mut BitStringObject<'_>, depth: usize ) { ... } fn visit_ber_bmpstring_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_boolean_mut(&mut self, b: &'a mut bool, depth: usize) { ... } fn visit_ber_endofcontent_mut(&mut self, depth: usize) { ... } fn visit_ber_enum_mut(&mut self, e: &'a mut u64, depth: usize) { ... } fn visit_ber_generalstring_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_generalizedtime_mut( &mut self, t: &'a ASN1DateTime, depth: usize ) { ... } fn visit_ber_graphicstring_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_ia5string_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_integer_mut(&mut self, raw_bytes: &'a mut &[u8], depth: usize) { ... } fn visit_ber_null_mut(&mut self, depth: usize) { ... } fn visit_ber_numericstring_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_oid_mut(&mut self, oid: &'a mut Oid<'_>, depth: usize) { ... } fn visit_ber_objectdescriptor_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_octetstring_mut(&mut self, b: &'a [u8], depth: usize) { ... } fn visit_ber_optional_mut( &mut self, obj: Option<&'a mut BerObject<'a>>, depth: usize ) { ... } fn visit_ber_printablestring_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_relative_oid_mut(&mut self, oid: &'a mut Oid<'_>, depth: usize) { ... } fn visit_ber_sequence_mut( &mut self, l: &mut Vec<BerObject<'a>>, depth: usize ) { ... } fn visit_ber_set_mut(&mut self, ber: &mut Vec<BerObject<'a>>, depth: usize) { ... } fn visit_ber_teletexstring_mut(&mut self, s: &'a mut &str, depth: usize) { ... } fn visit_ber_tagged_mut( &mut self, class: &'a mut Class, tag: &'a mut Tag, obj: &'a mut BerObject<'a>, depth: usize ) { ... } fn visit_ber_utctime_mut(&mut self, t: &'a ASN1DateTime, depth: usize) { ... } fn visit_ber_utf8string_mut(&mut self, s: &'a str, depth: usize) { ... } fn visit_ber_universalstring_mut( &mut self, raw_bytes: &'a mut &[u8], depth: usize ) { ... } fn visit_ber_videotextstring_mut( &mut self, raw_bytes: &'a mut &str, depth: usize ) { ... } fn visit_ber_visiblestring_mut( &mut self, raw_bytes: &'a mut &str, depth: usize ) { ... } fn visit_ber_unknown_mut(&mut self, ber: &mut Any<'a>, depth: usize) { ... } fn run(&mut self, ber: &'a mut BerObject<'a>) { ... } fn run_at(&mut self, ber: &'a mut BerObject<'a>, depth: usize) { ... }
}
Available on crate feature mtls only.
Expand description

BER object tree traversal to walk a shared borrow of a BER object

When implementing your own visitor, define your own visit_ber_xxx methods.

Note that visit_ber is called for every object, so if you implement multiple visitor methods they will be called multiple times for the same object. Generally, if visit_ber is implemented, then other methods are not needed.

For example, on a Sequence item, visit_ber is called first, then visit_ber_sequence, and then visit_ber for every sequence object (recursively).

Entry point: use the VisitMut::run or VisitMut::run_at methods.

Visitor functions

Provided Methods§

source

fn visit_ber_mut(&mut self, ber: &mut BerObject<'a>, depth: usize)

Called for every BER object

source

fn visit_ber_bitstring_mut( &mut self, ignored: &mut u8, data: &'a mut BitStringObject<'_>, depth: usize )

Called for BER bitstring objects

source

fn visit_ber_bmpstring_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER bmpstring objects

source

fn visit_ber_boolean_mut(&mut self, b: &'a mut bool, depth: usize)

Called for BER boolean objects

source

fn visit_ber_endofcontent_mut(&mut self, depth: usize)

Called for BER end-of-content objects

source

fn visit_ber_enum_mut(&mut self, e: &'a mut u64, depth: usize)

Called for BER enum objects

source

fn visit_ber_generalstring_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER generalstring objects

source

fn visit_ber_generalizedtime_mut(&mut self, t: &'a ASN1DateTime, depth: usize)

Called for BER generalizedtime objects

source

fn visit_ber_graphicstring_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER graphicstring objects

source

fn visit_ber_ia5string_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER ia5string objects

source

fn visit_ber_integer_mut(&mut self, raw_bytes: &'a mut &[u8], depth: usize)

Called for BER integer objects

source

fn visit_ber_null_mut(&mut self, depth: usize)

Called for BER null objects

source

fn visit_ber_numericstring_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER numericstring objects

source

fn visit_ber_oid_mut(&mut self, oid: &'a mut Oid<'_>, depth: usize)

Called for BER OID objects

source

fn visit_ber_objectdescriptor_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER object descriptor objects

source

fn visit_ber_octetstring_mut(&mut self, b: &'a [u8], depth: usize)

Called for BER octetstring objects

source

fn visit_ber_optional_mut( &mut self, obj: Option<&'a mut BerObject<'a>>, depth: usize )

Called for BER optional objects

source

fn visit_ber_printablestring_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER printablestring objects

source

fn visit_ber_relative_oid_mut(&mut self, oid: &'a mut Oid<'_>, depth: usize)

Called for BER relative OID objects

source

fn visit_ber_sequence_mut(&mut self, l: &mut Vec<BerObject<'a>>, depth: usize)

Called for BER sequence objects

source

fn visit_ber_set_mut(&mut self, ber: &mut Vec<BerObject<'a>>, depth: usize)

Called for BER set objects

source

fn visit_ber_teletexstring_mut(&mut self, s: &'a mut &str, depth: usize)

Called for BER teletexstring objects

source

fn visit_ber_tagged_mut( &mut self, class: &'a mut Class, tag: &'a mut Tag, obj: &'a mut BerObject<'a>, depth: usize )

Called for BER tagged objects

source

fn visit_ber_utctime_mut(&mut self, t: &'a ASN1DateTime, depth: usize)

Called for BER generalizedtime objects

source

fn visit_ber_utf8string_mut(&mut self, s: &'a str, depth: usize)

Called for BER utf8string objects

source

fn visit_ber_universalstring_mut( &mut self, raw_bytes: &'a mut &[u8], depth: usize )

Called for BER universalstring objects

source

fn visit_ber_videotextstring_mut( &mut self, raw_bytes: &'a mut &str, depth: usize )

Called for BER videotexstring objects

source

fn visit_ber_visiblestring_mut(&mut self, raw_bytes: &'a mut &str, depth: usize)

Called for BER visiblestring objects

source

fn visit_ber_unknown_mut(&mut self, ber: &mut Any<'a>, depth: usize)

Called for BER unknown objects

source

fn run(&mut self, ber: &'a mut BerObject<'a>)

Perform a BFS traversal of the BER object, calling the visitor functions during he traversal

Usually, this method should not be redefined (unless implementing a custom traversal)

source

fn run_at(&mut self, ber: &'a mut BerObject<'a>, depth: usize)

Perform a BFS traversal of the BER object, calling the visitor functions during he traversal

Start at specified depth.

Usually, this method should not be redefined (unless implementing a custom traversal)

Implementors§