44use serde:: { Deserialize , Serialize } ;
55use std:: fmt:: { Display , Formatter } ;
66use std:: hash:: Hash ;
7+ use std:: str:: FromStr ;
78use std:: sync:: Arc ;
89
910#[ derive( Debug , Copy , Clone , Eq , Hash , PartialEq ) ]
@@ -24,36 +25,21 @@ pub enum RemoteConfigSource {
2425 Deserialize ,
2526 strum_macros:: EnumIter ,
2627 strum_macros:: IntoStaticStr ,
28+ strum_macros:: Display ,
29+ strum_macros:: EnumString ,
2730) ]
31+ #[ strum( serialize_all = "SCREAMING_SNAKE_CASE" ) ]
2832pub enum RemoteConfigProduct {
2933 AgentConfig ,
3034 AgentTask ,
3135 ApmTracing ,
3236 Asm ,
3337 AsmData ,
34- AsmDD ,
38+ AsmDd ,
3539 AsmFeatures ,
3640 FfeFlags ,
37- LiveDebugger ,
38- LiveDebuggerSymbolDb ,
39- }
40-
41- impl Display for RemoteConfigProduct {
42- fn fmt ( & self , f : & mut Formatter < ' _ > ) -> std:: fmt:: Result {
43- let str = match self {
44- RemoteConfigProduct :: AgentConfig => "AGENT_CONFIG" ,
45- RemoteConfigProduct :: AgentTask => "AGENT_TASK" ,
46- RemoteConfigProduct :: ApmTracing => "APM_TRACING" ,
47- RemoteConfigProduct :: Asm => "ASM" ,
48- RemoteConfigProduct :: AsmData => "ASM_DATA" ,
49- RemoteConfigProduct :: AsmDD => "ASM_DD" ,
50- RemoteConfigProduct :: AsmFeatures => "ASM_FEATURES" ,
51- RemoteConfigProduct :: FfeFlags => "FFE_FLAGS" ,
52- RemoteConfigProduct :: LiveDebugger => "LIVE_DEBUGGING" ,
53- RemoteConfigProduct :: LiveDebuggerSymbolDb => "LIVE_DEBUGGING_SYMBOL_DB" ,
54- } ;
55- write ! ( f, "{str}" )
56- }
41+ LiveDebugging ,
42+ LiveDebuggingSymbolDb ,
5743}
5844
5945#[ derive( Debug , Clone , Eq , Hash , PartialEq ) ]
@@ -91,19 +77,8 @@ impl RemoteConfigPath {
9177 }
9278 source => anyhow:: bail!( "Unknown source {}" , source) ,
9379 } ,
94- product : match parts[ parts. len ( ) - 3 ] {
95- "AGENT_CONFIG" => RemoteConfigProduct :: AgentConfig ,
96- "AGENT_TASK" => RemoteConfigProduct :: AgentTask ,
97- "APM_TRACING" => RemoteConfigProduct :: ApmTracing ,
98- "ASM" => RemoteConfigProduct :: Asm ,
99- "ASM_DATA" => RemoteConfigProduct :: AsmData ,
100- "ASM_DD" => RemoteConfigProduct :: AsmDD ,
101- "ASM_FEATURES" => RemoteConfigProduct :: AsmFeatures ,
102- "FFE_FLAGS" => RemoteConfigProduct :: FfeFlags ,
103- "LIVE_DEBUGGING" => RemoteConfigProduct :: LiveDebugger ,
104- "LIVE_DEBUGGING_SYMBOL_DB" => RemoteConfigProduct :: LiveDebuggerSymbolDb ,
105- product => anyhow:: bail!( "Unknown product {}" , product) ,
106- } ,
80+ product : RemoteConfigProduct :: from_str ( parts[ parts. len ( ) - 3 ] )
81+ . map_err ( |_| anyhow:: anyhow!( "Unknown product {}" , parts[ parts. len( ) - 3 ] ) ) ?,
10782 config_id : parts[ parts. len ( ) - 2 ] ,
10883 name : parts[ parts. len ( ) - 1 ] ,
10984 } )
0 commit comments