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
impl Tag
sourcepub const fn try_from_u8(v: u8) -> Result<Self, TlvError>
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§
impl Copy for Tag
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> 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
Mutably borrows from an owned value. Read more