Skip to main content

cbor_core/value/
string.rs

1use super::*;
2
3impl<'a> From<char> for Value<'a> {
4    fn from(value: char) -> Self {
5        Self::TextString(value.to_string().into())
6    }
7}
8
9impl<'a> From<&'a str> for Value<'a> {
10    fn from(value: &'a str) -> Self {
11        Self::TextString(value.into())
12    }
13}
14
15impl<'a> From<String> for Value<'a> {
16    fn from(value: String) -> Self {
17        Self::TextString(value.into())
18    }
19}
20
21impl<'a> From<&'a String> for Value<'a> {
22    fn from(value: &'a String) -> Self {
23        Self::TextString(value.as_str().into())
24    }
25}
26
27impl<'a> From<Box<str>> for Value<'a> {
28    fn from(value: Box<str>) -> Self {
29        Self::TextString(String::from(value).into())
30    }
31}
32
33impl<'a> From<Cow<'a, str>> for Value<'a> {
34    fn from(value: Cow<'a, str>) -> Self {
35        Self::TextString(value)
36    }
37}
38
39impl<'a> TryFrom<Value<'a>> for String {
40    type Error = Error;
41    fn try_from(value: Value<'a>) -> Result<Self> {
42        value.into_string()
43    }
44}
45
46impl<'a> TryFrom<&'a Value<'a>> for &'a str {
47    type Error = Error;
48    fn try_from(value: &'a Value<'a>) -> Result<Self> {
49        value.as_str()
50    }
51}
52
53impl<'a> TryFrom<&'a mut Value<'a>> for &'a mut String {
54    type Error = Error;
55    fn try_from(value: &'a mut Value<'a>) -> Result<Self> {
56        value.as_string_mut()
57    }
58}