Struct iso7816_tlv::simple::Tag

source ·
pub struct Tag(/* private fields */);
Expand description

Tag for SIMPLE-TLV data as defined in [ISO7816-4].

The tag field consists of a single byte encoding a tag number from 1 to 254. The values ‘00’ and ‘FF’ are invalid for tag fields.

Tags can be generated using the TryFrom trait from u8 or hex str.

§Example

use std::convert::TryFrom;
use iso7816_tlv::simple::Tag;

// get tag from u8 or &str
assert!(Tag::try_from("80").is_ok());
assert!(Tag::try_from(8u8).is_ok());
assert!(Tag::try_from(0x80).is_ok());
assert!(Tag::try_from(127).is_ok());

assert!(Tag::try_from("er").is_err());
assert!(Tag::try_from("00").is_err());
assert!(Tag::try_from("ff").is_err());

// get tag as u8
let tag = Tag::try_from("80")?;
let _tag_as_u8: u8 = tag.into();
let _tag_as_u8 = Into::<u8>::into(tag);

Implementations§

source§

impl Tag

source

pub const fn try_from_u8(v: u8) -> Result<Self, TlvError>

Tries to convert a u8 into a Tag. This is equivalent to the TryFrom impl for u8, except that this fn is const and can be used in some contexts that TryFrom cannot be used in, for example for defining constants:

use iso7816_tlv::simple::Tag;

const SOME_TAG_CONSTANT: Tag = match Tag::try_from_u8(0x42) {
    Ok(tag) => tag,
    Err(e) => panic!(),
};
§Errors

This method returns Err(TlvError::InvalidInput) if v is not a legal tag (e.g., if v is 0x00 or 0xFF).

Trait Implementations§

source§

impl Clone for Tag

source§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Tag

source§

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

Formats the value using the given formatter. Read more
source§

impl Into<u8> for Tag

source§

fn into(self) -> u8

Converts this type into the (usually inferred) input type.
source§

impl PartialEq for Tag

source§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for Tag

§

type Error = TlvError

The type returned in the event of a conversion error.
source§

fn try_from(v: &str) -> Result<Self, TlvError>

Performs the conversion.
source§

impl TryFrom<u8> for Tag

§

type Error = TlvError

The type returned in the event of a conversion error.
source§

fn try_from(v: u8) -> Result<Self, TlvError>

Performs the conversion.
source§

impl Copy for Tag

source§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnwindSafe for Tag

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.