From af0410191e7e2dd956870175f894440cb51267c1 Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Fri, 25 Feb 2022 11:31:29 +0100 Subject: [PATCH] Implement Display for Lang --- openpgp-card/src/card_do.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/openpgp-card/src/card_do.rs b/openpgp-card/src/card_do.rs index d389767..16d767b 100644 --- a/openpgp-card/src/card_do.rs +++ b/openpgp-card/src/card_do.rs @@ -4,8 +4,8 @@ //! OpenPGP card data objects (DO) use chrono::{DateTime, Utc}; -use std::convert::TryFrom; -use std::convert::TryInto; +use std::convert::{TryFrom, TryInto}; +use std::fmt::{Display, Formatter}; use std::time::{Duration, UNIX_EPOCH}; use crate::{algorithm::Algo, tlv::Tlv, Error, KeySet, KeyType}; @@ -304,6 +304,19 @@ pub enum Lang { Invalid(u8), } +impl Display for Lang { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + Self::Value(v) => { + write!(f, "{}{}", v[0] as char, v[1] as char) + } + Self::Invalid(v) => { + write!(f, "{:x?}", v) + } + } + } +} + impl From<(char, char)> for Lang { fn from(c: (char, char)) -> Self { Lang::Value([c.0 as u8, c.1 as u8])