summaryrefslogtreecommitdiffstats
path: root/vendor/der/src/asn1/teletex_string.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/der/src/asn1/teletex_string.rs')
-rw-r--r--vendor/der/src/asn1/teletex_string.rs15
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)]