vcard/parameters/
label.rs

1use std::fmt::Display;
2
3use validators::{Validated, ValidatedWrapper};
4
5use super::{
6    super::values::{parameter_value::ParameterValue, Value},
7    *,
8};
9
10#[derive(Clone, Debug, PartialEq, Eq, Hash)]
11pub struct Label {
12    parameter_value: ParameterValue,
13}
14
15impl Label {
16    pub fn from_parameter_value(parameter_value: ParameterValue) -> Label {
17        Label {
18            parameter_value,
19        }
20    }
21
22    pub fn is_empty(&self) -> bool {
23        self.parameter_value.is_empty()
24    }
25}
26
27impl Label {
28    pub fn get_parameter_value(&self) -> &ParameterValue {
29        &self.parameter_value
30    }
31}
32
33impl Parameter for Label {
34    fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
35        if self.is_empty() {
36            return Ok(());
37        }
38
39        f.write_str(";LABEL=")?;
40
41        Value::fmt(&self.parameter_value, f)?;
42
43        Ok(())
44    }
45}
46
47impl Display for Label {
48    fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
49        Parameter::fmt(self, f)
50    }
51}
52
53impl Validated for Label {}
54
55impl ValidatedWrapper for Label {
56    type Error = &'static str;
57
58    fn from_string(_from_string_input: String) -> Result<Self, Self::Error> {
59        unimplemented!();
60    }
61
62    fn from_str(_from_str_input: &str) -> Result<Self, Self::Error> {
63        unimplemented!();
64    }
65}