castep_cell_parser/pest_parser/
keyword_value.rs1use 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}