castep_param_io/param/units/
time_unit.rs1use std::fmt::Display;
2
3use serde::{Deserialize, Serialize};
4
5use crate::param::KeywordDisplay;
6
7#[derive(
8 Debug, Clone, Copy, Serialize, Deserialize, Hash, PartialEq, Eq, PartialOrd, Ord, Default,
9)]
10pub enum TimeUnit {
14 AtomicUnitOfTime,
15 Second,
16 Millisecond,
17 Microsecond,
18 Nanosecond,
19 #[default]
20 Picosecond,
21 Femtosecond,
22}
23
24impl Display for TimeUnit {
25 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
26 match self {
27 TimeUnit::AtomicUnitOfTime => f.write_str("aut"),
28 TimeUnit::Second => f.write_str("s"),
29 TimeUnit::Millisecond => f.write_str("ms"),
30 TimeUnit::Microsecond => f.write_str("mus"),
31 TimeUnit::Nanosecond => f.write_str("ns"),
32 TimeUnit::Picosecond => f.write_str("ps"),
33 TimeUnit::Femtosecond => f.write_str("fs"),
34 }
35 }
36}
37
38impl KeywordDisplay for TimeUnit {
39 fn field(&self) -> String {
40 "TIME_UNIT".to_string()
41 }
42}