Skip to content

Commit 290d685

Browse files
committed
add support for closures getters without parsens
1 parent 4308600 commit 290d685

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

glib-macros/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -871,7 +871,7 @@ pub fn derive_props(input: TokenStream) -> proc_macro::TokenStream {
871871
let name = &p.name;
872872
let ident = &p.field.as_ref().unwrap().ident;
873873
match &p.get {
874-
Some(MaybeCustomFn::CustomFn(expr)) => Some(quote!(#name => #expr(&self))),
874+
Some(MaybeCustomFn::CustomFn(expr)) => Some(quote!(#name => (#expr)(&self))),
875875
Some(MaybeCustomFn::DefaultFn) => Some(quote!(#name => self.#ident.get())),
876876
None => None,
877877
}
@@ -880,7 +880,7 @@ pub fn derive_props(input: TokenStream) -> proc_macro::TokenStream {
880880
let name = &p.name;
881881
let ident = &p.field.as_ref().unwrap().ident;
882882
match &p.set {
883-
Some(MaybeCustomFn::CustomFn(expr)) => Some(quote!(#name => #expr(&self, value))),
883+
Some(MaybeCustomFn::CustomFn(expr)) => Some(quote!(#name => (#expr)(&self, value))),
884884
Some(MaybeCustomFn::DefaultFn) => Some(quote!(#name => self.#ident.set(value))),
885885
None => None,
886886
}

glib-macros/tests/props.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ fn props() {
2626
#[prop(get, set = Self::set_fizz, name = "fizz")]
2727
fizz: RefCell<String>,
2828
author: RefCell<Author>,
29-
#[prop(get = Self::get_author_name, set = Self::set_author_name)]
29+
#[prop(
30+
get = |t: &Self| t.author.borrow().name.to_value(),
31+
set = Self::set_author_name)]
3032
author_name: PhantomData<String>,
3133
}
3234

@@ -37,9 +39,6 @@ fn props() {
3739
}
3840

3941
impl Foo {
40-
fn get_author_name(&self) -> glib::Value {
41-
self.author.borrow().name.to_value()
42-
}
4342
fn set_author_name(&self, value: &glib::Value) {
4443
self.author.borrow_mut().name = value.get().unwrap();
4544
}

0 commit comments

Comments
 (0)