vcard/parameters/
language.rs

1use std::fmt::Display;
2
3use validators::{Validated, ValidatedWrapper};
4
5use super::{super::values::language_tag::LanguageTag, *};
6
7#[derive(Clone, Debug, PartialEq, Eq, Hash)]
8pub struct Language {
9    language_tag: LanguageTag,
10}
11
12impl Language {
13    pub fn from_language_tag(language_tag: LanguageTag) -> Language {
14        Language {
15            language_tag,
16        }
17    }
18}
19
20impl Language {
21    pub fn get_language_tag(&self) -> &LanguageTag {
22        &self.language_tag
23    }
24}
25
26impl Parameter for Language {
27    fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
28        f.write_str(";LANGUAGE=")?;
29        f.write_str(self.language_tag.as_str())?;
30
31        Ok(())
32    }
33}
34
35impl Display for Language {
36    fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
37        Parameter::fmt(self, f)
38    }
39}
40
41impl Validated for Language {}
42
43impl ValidatedWrapper for Language {
44    type Error = &'static str;
45
46    fn from_string(_from_string_input: String) -> Result<Self, Self::Error> {
47        unimplemented!();
48    }
49
50    fn from_str(_from_str_input: &str) -> Result<Self, Self::Error> {
51        unimplemented!();
52    }
53}