diff options
Diffstat (limited to 'macros/src/lib.rs')
-rw-r--r-- | macros/src/lib.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 9170e82..39f0d01 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -187,6 +187,9 @@ pub fn nfnetlink_struct(attrs: TokenStream, item: TokenStream) -> TokenStream { let getter_name = format!("get_{}", field_str); let getter_name = Ident::new(&getter_name, field.name.span()); + let muttable_getter_name = format!("get_mut_{}", field_str); + let muttable_getter_name = Ident::new(&muttable_getter_name, field.name.span()); + let setter_name = format!("set_{}", field_str); let setter_name = Ident::new(&setter_name, field.name.span()); @@ -199,6 +202,10 @@ pub fn nfnetlink_struct(attrs: TokenStream, item: TokenStream) -> TokenStream { self.#field_name.as_ref() } + pub fn #muttable_getter_name(&mut self) -> Option<&mut #field_type> { + self.#field_name.as_mut() + } + pub fn #setter_name(&mut self, val: impl Into<#field_type>) { self.#field_name = Some(val.into()); } |