castep_cell_io/param/general/
print_memory_usage.rs1use castep_cell_fmt::{Cell, CellValue, ToCell, ToCellValue, CResult};
2use castep_cell_fmt::parse::FromKeyValue;
3use castep_cell_fmt::query::value_as_bool;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
14pub struct PrintMemoryUsage(pub bool);
15
16impl Default for PrintMemoryUsage {
17 fn default() -> Self {
18 Self(true) }
20}
21
22impl FromKeyValue for PrintMemoryUsage {
23 const KEY_NAME: &'static str = "PRINT_MEMORY_USAGE";
24
25 fn from_cell_value_kv(value: &CellValue<'_>) -> CResult<Self> {
26 Ok(Self(value_as_bool(value)?))
27 }
28}
29
30impl ToCell for PrintMemoryUsage {
31 fn to_cell(&self) -> Cell<'_> {
32 Cell::KeyValue("PRINT_MEMORY_USAGE", CellValue::Bool(self.0))
33 }
34}
35
36impl ToCellValue for PrintMemoryUsage {
37 fn to_cell_value(&self) -> CellValue<'_> {
38 CellValue::Bool(self.0)
39 }
40}
41
42#[cfg(test)]
43mod tests {
44 use super::*;
45
46 #[test]
47 fn test_from_cell_value_true() {
48 let val = CellValue::Bool(true);
49 assert_eq!(PrintMemoryUsage::from_cell_value_kv(&val).unwrap().0, true);
50 }
51
52 #[test]
53 fn test_from_cell_value_false() {
54 let val = CellValue::Bool(false);
55 assert_eq!(PrintMemoryUsage::from_cell_value_kv(&val).unwrap().0, false);
56 }
57
58 #[test]
59 fn test_key_name() {
60 assert_eq!(PrintMemoryUsage::KEY_NAME, "PRINT_MEMORY_USAGE");
61 }
62}
63