1#[derive(Debug, Clone, PartialEq, Eq, Default)]
9pub enum OptionOrigin {
10 #[default]
12 Default,
13 GlobalConfig,
15 BufferLocal,
17 ModeContribution {
19 mode_id: String,
22 },
23}
24
25impl std::fmt::Display for OptionOrigin {
26 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
27 match self {
28 Self::Default => f.write_str("default"),
29 Self::GlobalConfig => f.write_str("global"),
30 Self::BufferLocal => f.write_str("buffer-local"),
31 Self::ModeContribution { mode_id } => write!(f, "mode: {mode_id}"),
32 }
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39
40 #[test]
41 fn display_variants() {
42 assert_eq!(OptionOrigin::Default.to_string(), "default");
43 assert_eq!(OptionOrigin::GlobalConfig.to_string(), "global");
44 assert_eq!(OptionOrigin::BufferLocal.to_string(), "buffer-local");
45 assert_eq!(
46 OptionOrigin::ModeContribution {
47 mode_id: "rust-mode".into()
48 }
49 .to_string(),
50 "mode: rust-mode"
51 );
52 }
53}