Skip to main content

openvpn_mgmt_codec/
status_format.rs

1use std::fmt;
2
3/// Status output format version. Higher versions are more machine-parseable.
4///
5/// - V1: default human-readable format
6/// - V2: adds header/footer markers for easier parsing
7/// - V3: tab-delimited, ideal for programmatic consumption
8#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
9pub enum StatusFormat {
10    /// Default human-readable format.
11    #[default]
12    V1,
13
14    /// Adds header/footer markers for easier parsing.
15    V2,
16
17    /// Tab-delimited, ideal for programmatic consumption.
18    V3,
19}
20
21impl fmt::Display for StatusFormat {
22    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
23        match self {
24            Self::V1 => f.write_str("1"),
25            Self::V2 => f.write_str("2"),
26            Self::V3 => f.write_str("3"),
27        }
28    }
29}