castep_param_io/param/general/
iprint.rs

1use std::fmt::Display;
2
3use castep_param_derive::KeywordDisplay;
4use serde::{Deserialize, Serialize};
5
6#[derive(
7    Debug,
8    Clone,
9    Copy,
10    PartialEq,
11    Eq,
12    PartialOrd,
13    Ord,
14    Hash,
15    Default,
16    KeywordDisplay,
17    Serialize,
18    Deserialize,
19)]
20#[keyword_display(field = "IPRINT", direct_display = false)]
21/// This keyword controls the level of verbosity of the output. Possible
22///  values range from 0, which produces minimal output, to 3,
23/// which corresponds to full debugging output.
24/// # Default
25/// 1
26/// # Example
27/// `IPRINT : 1`
28pub enum IPrint {
29    Minimal,
30    #[default]
31    Default,
32    Verbose,
33    Full,
34}
35
36impl Display for IPrint {
37    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
38        write!(f, "{}", *self as usize)
39    }
40}
41
42#[cfg(test)]
43mod test {
44    use crate::param::KeywordDisplay;
45
46    use super::IPrint;
47
48    #[test]
49    fn iprint() {
50        let iprint = IPrint::default();
51        assert_eq!("IPRINT : 1", iprint.output());
52    }
53}