use std::borrow::Cow;
use crate::UnicodeString;
impl From<&str> for UnicodeString {
fn from(s: &str) -> Self { UnicodeString::new(s) }
}
impl From<String> for UnicodeString {
fn from(s: String) -> Self { UnicodeString::new(&s) }
}
impl From<Cow<'_, str>> for UnicodeString {
fn from(s: Cow<'_, str>) -> Self { UnicodeString::new(&s) }
}
impl From<&mut Cow<'_, str>> for UnicodeString {
fn from(s: &mut Cow<'_, str>) -> Self { UnicodeString::new(s) }
}
impl From<&String> for UnicodeString {
fn from(s: &String) -> Self { UnicodeString::new(s) }
}
impl From<UnicodeString> for String {
fn from(s: UnicodeString) -> Self { s.string }
}
pub trait UnicodeStringExt {
fn unicode_string(&self) -> UnicodeString;
}
impl UnicodeStringExt for Cow<'_, str> {
fn unicode_string(&self) -> UnicodeString { UnicodeString::new(self) }
}
impl UnicodeStringExt for &str {
fn unicode_string(&self) -> UnicodeString { UnicodeString::new(self) }
}
impl UnicodeStringExt for String {
fn unicode_string(&self) -> UnicodeString { UnicodeString::from(self) }
}