diagnostics/
detail_level.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
5#[cfg_attr(feature = "wasm-bindings", derive(tsify::Tsify))]
6#[cfg_attr(feature = "wasm-bindings", tsify(from_wasm_abi))]
7#[cfg_attr(feature = "uniffi-bindings", derive(uniffi::Enum))]
8#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
9pub enum DetailLevel {
10 Standard,
12 #[default]
14 Detailed,
15}
16
17impl DetailLevel {
18 pub fn needs_enrichment(&self) -> bool {
20 matches!(self, DetailLevel::Detailed)
21 }
22
23 pub fn needs_context(&self) -> bool {
25 matches!(self, DetailLevel::Detailed)
26 }
27}
28
29#[cfg(test)]
30mod tests {
31 use super::*;
32
33 #[test]
34 fn default_is_detailed() {
35 assert_eq!(DetailLevel::default(), DetailLevel::Detailed);
36 }
37
38 #[test]
39 fn standard_skips_context_and_enrichment() {
40 assert!(!DetailLevel::Standard.needs_context());
41 assert!(!DetailLevel::Standard.needs_enrichment());
42 }
43
44 #[test]
45 fn detailed_requires_context_and_enrichment() {
46 assert!(DetailLevel::Detailed.needs_context());
47 assert!(DetailLevel::Detailed.needs_enrichment());
48 }
49}