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}