Struct const_oid::ObjectIdentifier[][src]

pub struct ObjectIdentifier { /* fields omitted */ }
Expand description

Object identifier (OID).

OIDs are hierarchical structures consisting of “arcs”, i.e. integer identifiers.

Validity

In order for an OID to be considered valid by this library, it must meet the following criteria:

  • The OID MUST have at least 3 arcs
  • The first arc MUST be within the range 0-2
  • The second arc MUST be within the range 0-39
  • The BER/DER encoding of the OID MUST be shorter than [ObjectIdentifier::max_len]

Implementations

impl ObjectIdentifier[src]

pub const MAX_LENGTH: usize[src]

Maximum length of a BER/DER-encoded OID in bytes.

pub const fn new(s: &str) -> Self[src]

Parse an ObjectIdentifier from the dot-delimited string form, e.g.:

use const_oid::ObjectIdentifier;

pub const MY_OID: ObjectIdentifier = ObjectIdentifier::new("1.2.840.113549.1.1.1");

Panics

This method panics in the event the OID is malformed according to the “Validity” rules given in the toplevel documentation for this type.

For that reason this method is ONLY recommended for use in constants (where it will generate a compiler error instead).

To parse an OID from a &str slice fallibly and without panicking, use the FromStr impl instead (or via str’s parse method).

pub fn from_arcs(arcs: &[Arc]) -> Result<Self>[src]

Parse an OID from a slice of Arc values (i.e. integers).

pub fn from_bytes(ber_bytes: &[u8]) -> Result<Self>[src]

Parse an OID from from its BER/DER encoding.

pub fn as_bytes(&self) -> &[u8][src]

Get the BER/DER serialization of this OID as bytes.

Note that this encoding omits the tag/length, and only contains the value portion of the encoded OID.

pub fn arc(&self, index: usize) -> Option<Arc>[src]

Return the arc with the given index, if it exists.

pub fn arcs(&self) -> Arcs<'_>

Notable traits for Arcs<'a>

impl<'a> Iterator for Arcs<'a> type Item = Arc;
[src]

Iterate over the arcs (a.k.a. nodes) of an ObjectIdentifier.

Returns Arcs, an iterator over Arc values representing the value of each arc/node.

Trait Implementations

impl AsRef<[u8]> for ObjectIdentifier[src]

fn as_ref(&self) -> &[u8][src]

Performs the conversion.

impl Clone for ObjectIdentifier[src]

fn clone(&self) -> ObjectIdentifier[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for ObjectIdentifier[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Display for ObjectIdentifier[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl From<&'_ ObjectIdentifier> for ObjectIdentifier[src]

fn from(oid: &ObjectIdentifier) -> ObjectIdentifier[src]

Performs the conversion.

impl FromStr for ObjectIdentifier[src]

type Err = Error

The associated error which can be returned from parsing.

fn from_str(string: &str) -> Result<Self>[src]

Parses a string s to return a value of this type. Read more

impl Hash for ObjectIdentifier[src]

fn hash<__H: Hasher>(&self, state: &mut __H)[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given Hasher. Read more

impl Ord for ObjectIdentifier[src]

fn cmp(&self, other: &ObjectIdentifier) -> Ordering[src]

This method returns an Ordering between self and other. Read more

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl PartialEq<ObjectIdentifier> for ObjectIdentifier[src]

fn eq(&self, other: &ObjectIdentifier) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &ObjectIdentifier) -> bool[src]

This method tests for !=.

impl PartialOrd<ObjectIdentifier> for ObjectIdentifier[src]

fn partial_cmp(&self, other: &ObjectIdentifier) -> Option<Ordering>[src]

This method returns an ordering between self and other values if one exists. Read more

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl TryFrom<&'_ [u8]> for ObjectIdentifier[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(ber_bytes: &[u8]) -> Result<Self>[src]

Performs the conversion.

impl Copy for ObjectIdentifier[src]

impl Eq for ObjectIdentifier[src]

impl StructuralEq for ObjectIdentifier[src]

impl StructuralPartialEq for ObjectIdentifier[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> ToString for T where
    T: Display + ?Sized
[src]

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.