diff options
Diffstat (limited to 'vendor/der/src/asn1/teletex_string.rs')
-rw-r--r-- | vendor/der/src/asn1/teletex_string.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/vendor/der/src/asn1/teletex_string.rs b/vendor/der/src/asn1/teletex_string.rs index cedf727db..337c071e5 100644 --- a/vendor/der/src/asn1/teletex_string.rs +++ b/vendor/der/src/asn1/teletex_string.rs @@ -95,8 +95,9 @@ mod allocation { use crate::{ asn1::AnyRef, referenced::{OwnedToRef, RefToOwned}, - BytesRef, FixedTag, Result, StrOwned, Tag, + BytesRef, Error, FixedTag, Result, StrOwned, Tag, }; + use alloc::string::String; use core::{fmt, ops::Deref}; /// ASN.1 `TeletexString` type. @@ -179,6 +180,18 @@ mod allocation { } } } + + impl TryFrom<String> for TeletexString { + type Error = Error; + + fn try_from(input: String) -> Result<Self> { + TeletexStringRef::new(&input)?; + + StrOwned::new(input) + .map(|inner| Self { inner }) + .map_err(|_| Self::TAG.value_error()) + } + } } #[cfg(test)] |