castep_param_io/param/general/
charge_unit.rs

1use std::fmt::{Display, Write};
2
3use castep_param_derive::KeywordDisplay;
4use serde::{Deserialize, Serialize};
5
6
7#[derive(
8    Debug,
9    Clone,
10    Copy,
11    Default,
12    Hash,
13    PartialEq,
14    Eq,
15    PartialOrd,
16    Ord,
17    Serialize,
18    Deserialize,
19    KeywordDisplay,
20)]
21#[keyword_display(field = "CHARGE_UNIT", direct_display = false)]
22pub enum ChargeUnit {
23    #[default]
24    E,
25    C,
26}
27
28impl Display for ChargeUnit {
29    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30        match self {
31            ChargeUnit::E => f.write_char('e'),
32            ChargeUnit::C => f.write_char('c'),
33        }
34    }
35}