@@ -243,6 +243,30 @@ impl<'de: 'a, 'a> Deserialize<'de> for DGroups<'a> {
243243 }
244244 }
245245
246+ fn visit_str < E > ( self , v : & str ) -> Result < Self :: Value , E >
247+ where
248+ E : serde:: de:: Error , {
249+ if let Ok ( group) = v. parse ( ) {
250+ return Ok ( DGroups :: Single ( DGroupType ( DGenericActorType :: Id ( group) ) ) ) ;
251+ } else {
252+ return Ok ( DGroups :: Single ( DGroupType ( DGenericActorType :: Name (
253+ Cow :: Owned ( v. to_string ( ) ) ,
254+ ) ) ) ) ;
255+ }
256+ }
257+
258+ fn visit_string < E > ( self , v : String ) -> Result < Self :: Value , E >
259+ where
260+ E : serde:: de:: Error , {
261+ if let Ok ( group) = v. parse ( ) {
262+ return Ok ( DGroups :: Single ( DGroupType ( DGenericActorType :: Id ( group) ) ) ) ;
263+ } else {
264+ return Ok ( DGroups :: Single ( DGroupType ( DGenericActorType :: Name (
265+ v. into ( ) ,
266+ ) ) ) ) ;
267+ }
268+ }
269+
246270 fn visit_u64 < E > ( self , value : u64 ) -> Result < Self :: Value , E >
247271 where
248272 E : serde:: de:: Error ,
@@ -302,6 +326,30 @@ impl<'de: 'a, 'a> Deserialize<'de> for SGroups {
302326 }
303327 }
304328
329+ fn visit_str < E > ( self , v : & str ) -> Result < Self :: Value , E >
330+ where
331+ E : serde:: de:: Error , {
332+ if let Ok ( group) = v. parse ( ) {
333+ return Ok ( SGroups :: Single ( SGroupType ( SGenericActorType :: Id ( group) ) ) ) ;
334+ } else {
335+ return Ok ( SGroups :: Single ( SGroupType ( SGenericActorType :: Name (
336+ v. into ( ) ,
337+ ) ) ) ) ;
338+ }
339+ }
340+
341+ fn visit_string < E > ( self , v : String ) -> Result < Self :: Value , E >
342+ where
343+ E : serde:: de:: Error , {
344+ if let Ok ( group) = v. parse ( ) {
345+ return Ok ( SGroups :: Single ( SGroupType ( SGenericActorType :: Id ( group) ) ) ) ;
346+ } else {
347+ return Ok ( SGroups :: Single ( SGroupType ( SGenericActorType :: Name (
348+ v,
349+ ) ) ) ) ;
350+ }
351+ }
352+
305353 fn visit_u64 < E > ( self , value : u64 ) -> Result < Self :: Value , E >
306354 where
307355 E : serde:: de:: Error ,
0 commit comments