vcard/parameters/
label.rs1use 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}