From d61359449f373ceda4df43a4198d430550489c25 Mon Sep 17 00:00:00 2001 From: Jovan Gerodetti Date: Wed, 26 Jun 2024 13:40:00 +0200 Subject: [PATCH] Implement property hint string for bit flags (#41) --- derive/src/attribute_ops.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/derive/src/attribute_ops.rs b/derive/src/attribute_ops.rs index 8fd53b6..500aab6 100644 --- a/derive/src/attribute_ops.rs +++ b/derive/src/attribute_ops.rs @@ -101,14 +101,21 @@ impl FieldExportOps { result = Some((field, quote!(#property_hints::FILE), filters.join(","))); } - if self.flags.is_some() { + if let Some(list) = self.flags.as_ref() { let field = "flags"; if let Some((active_field, _, _)) = result { return Self::error(span, active_field, field); } - result = Some((field, quote!(#property_hints::FLAGS), String::new())); + let flags = list + .elems + .iter() + .map(String::from_expr) + .collect::, _>>() + .map_err(|err| err.write_errors())?; + + result = Some((field, quote!(#property_hints::FLAGS), flags.join(","))); } if self.global_dir {