castep_cell_parser/pest_parser/
keyword_value.rs

1use std::fmt::Display;
2
3#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord)]
4pub struct KeywordValue {
5    order: usize,
6    name: String,
7    value: String,
8}
9
10impl Display for KeywordValue {
11    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
12        write!(f, "{} : {:>4}", self.name(), self.value())
13    }
14}
15
16impl KeywordValue {
17    pub fn new<V: Display>(order: usize, name: String, value: V) -> Self {
18        Self {
19            order,
20            name,
21            value: value.to_string(),
22        }
23    }
24
25    pub fn order(&self) -> usize {
26        self.order
27    }
28
29    pub fn name(&self) -> &str {
30        &self.name
31    }
32
33    pub fn value(&self) -> &str {
34        &self.value
35    }
36
37    pub fn set_value(&mut self, value: String) {
38        self.value = value;
39    }
40}
41
42#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
43pub struct SingleKeyword {
44    order: usize,
45    name: String,
46}
47
48impl SingleKeyword {
49    pub fn new(order: usize, name: String) -> Self {
50        Self { order, name }
51    }
52
53    pub fn name(&self) -> &str {
54        &self.name
55    }
56
57    pub fn order(&self) -> usize {
58        self.order
59    }
60}
61
62impl Display for SingleKeyword {
63    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
64        write!(f, "{}", self.name)
65    }
66}