@@ -84,15 +84,13 @@ impl MetaCapabilityExt for InitializeRequest {
8484 }
8585
8686 fn add_meta_capability ( mut self , capability : impl MetaCapability ) -> Self {
87- let mut meta = self . client_capabilities . meta . take ( ) . unwrap_or ( json ! ( { } ) ) ;
87+ let mut meta = self . client_capabilities . meta . take ( ) . unwrap_or_default ( ) ;
8888
89- if let Some ( obj) = meta. as_object_mut ( ) {
90- let symposium = obj. entry ( "symposium" ) . or_insert_with ( || json ! ( { } ) ) ;
89+ let symposium = meta. entry ( "symposium" ) . or_insert_with ( || json ! ( { } ) ) ;
9190
92- if let Some ( symposium_obj) = symposium. as_object_mut ( ) {
93- symposium_obj. insert ( "version" . to_string ( ) , json ! ( "1.0" ) ) ;
94- symposium_obj. insert ( capability. key ( ) . to_string ( ) , capability. value ( ) ) ;
95- }
91+ if let Some ( symposium_obj) = symposium. as_object_mut ( ) {
92+ symposium_obj. insert ( "version" . to_string ( ) , json ! ( "1.0" ) ) ;
93+ symposium_obj. insert ( capability. key ( ) . to_string ( ) , capability. value ( ) ) ;
9694 }
9795
9896 self . client_capabilities . meta = Some ( meta) ;
@@ -101,8 +99,7 @@ impl MetaCapabilityExt for InitializeRequest {
10199
102100 fn remove_meta_capability ( mut self , capability : impl MetaCapability ) -> Self {
103101 if let Some ( ref mut meta) = self . client_capabilities . meta
104- && let Some ( obj) = meta. as_object_mut ( )
105- && let Some ( symposium) = obj. get_mut ( "symposium" )
102+ && let Some ( symposium) = meta. get_mut ( "symposium" )
106103 && let Some ( symposium_obj) = symposium. as_object_mut ( )
107104 {
108105 symposium_obj. remove ( capability. key ( ) ) ;
@@ -122,15 +119,13 @@ impl MetaCapabilityExt for InitializeResponse {
122119 }
123120
124121 fn add_meta_capability ( mut self , capability : impl MetaCapability ) -> Self {
125- let mut meta = self . agent_capabilities . meta . take ( ) . unwrap_or ( json ! ( { } ) ) ;
122+ let mut meta = self . agent_capabilities . meta . take ( ) . unwrap_or_default ( ) ;
126123
127- if let Some ( obj) = meta. as_object_mut ( ) {
128- let symposium = obj. entry ( "symposium" ) . or_insert_with ( || json ! ( { } ) ) ;
124+ let symposium = meta. entry ( "symposium" ) . or_insert_with ( || json ! ( { } ) ) ;
129125
130- if let Some ( symposium_obj) = symposium. as_object_mut ( ) {
131- symposium_obj. insert ( "version" . to_string ( ) , json ! ( "1.0" ) ) ;
132- symposium_obj. insert ( capability. key ( ) . to_string ( ) , capability. value ( ) ) ;
133- }
126+ if let Some ( symposium_obj) = symposium. as_object_mut ( ) {
127+ symposium_obj. insert ( "version" . to_string ( ) , json ! ( "1.0" ) ) ;
128+ symposium_obj. insert ( capability. key ( ) . to_string ( ) , capability. value ( ) ) ;
134129 }
135130
136131 self . agent_capabilities . meta = Some ( meta) ;
@@ -139,8 +134,7 @@ impl MetaCapabilityExt for InitializeResponse {
139134
140135 fn remove_meta_capability ( mut self , capability : impl MetaCapability ) -> Self {
141136 if let Some ( ref mut meta) = self . agent_capabilities . meta
142- && let Some ( obj) = meta. as_object_mut ( )
143- && let Some ( symposium) = obj. get_mut ( "symposium" )
137+ && let Some ( symposium) = meta. get_mut ( "symposium" )
144138 && let Some ( symposium_obj) = symposium. as_object_mut ( )
145139 {
146140 symposium_obj. remove ( capability. key ( ) ) ;
@@ -153,7 +147,7 @@ impl MetaCapabilityExt for InitializeResponse {
153147mod tests {
154148 use super :: * ;
155149 use crate :: schema:: ClientCapabilities ;
156- use agent_client_protocol_schema:: ProtocolVersion ;
150+ use agent_client_protocol_schema:: { Meta , ProtocolVersion } ;
157151 use serde_json:: json;
158152
159153 #[ test]
@@ -171,11 +165,10 @@ mod tests {
171165
172166 #[ test]
173167 fn test_remove_proxy_capability ( ) {
174- let client_capabilities = ClientCapabilities :: new ( ) . meta ( json ! ( {
175- "symposium" : {
176- "proxy" : true
177- }
178- } ) ) ;
168+ let client_capabilities = ClientCapabilities :: new ( ) . meta ( Meta :: from_iter ( [ (
169+ "symposium" . into ( ) ,
170+ json ! ( { "proxy" : true } ) ,
171+ ) ] ) ) ;
179172
180173 let request = InitializeRequest :: new ( ProtocolVersion :: LATEST )
181174 . client_capabilities ( client_capabilities) ;
@@ -187,11 +180,10 @@ mod tests {
187180
188181 #[ test]
189182 fn test_has_proxy_capability ( ) {
190- let client_capabilities = ClientCapabilities :: new ( ) . meta ( json ! ( {
191- "symposium" : {
192- "proxy" : true
193- }
194- } ) ) ;
183+ let client_capabilities = ClientCapabilities :: new ( ) . meta ( Meta :: from_iter ( [ (
184+ "symposium" . into ( ) ,
185+ json ! ( { "proxy" : true } ) ,
186+ ) ] ) ) ;
195187
196188 let request = InitializeRequest :: new ( ProtocolVersion :: LATEST )
197189 . client_capabilities ( client_capabilities) ;
0 commit comments