Skip to content

Commit 2c59611

Browse files
committed
Remove #[property(before_get|before_set|after_get|after_set)]
Obsolete through #[property(get|set)]
1 parent 575767d commit 2c59611

File tree

5 files changed

+1
-290
lines changed

5 files changed

+1
-290
lines changed

gdnative-derive/src/lib.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,6 @@ pub fn profiled(meta: TokenStream, input: TokenStream) -> TokenStream {
213213
/// Sets the default value *in the inspector* for this property. The setter is *not*
214214
/// guaranteed to be called by the engine with the value.
215215
///
216-
/// - `before_get` / `after_get` / `before_set` / `after_set` `= "Self::hook_method"`
217-
///
218-
/// Call hook methods with `self` and `owner` before and/or after the generated property
219-
/// accessors.
220-
///
221216
/// - `get` / `get_ref` / `set`
222217
///
223218
/// Configure getter/setter for property. All of them can accept a path to specify a custom

gdnative-derive/src/native_script.rs

Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,6 @@ pub(crate) fn derive_native_class(derive_input: &DeriveInput) -> Result<TokenStr
117117
} else {
118118
(config.get, config.set)
119119
};
120-
let before_get: Option<Stmt> = config
121-
.before_get
122-
.map(|path_expr| parse_quote!(#path_expr(this, _owner);));
123-
let after_get: Option<Stmt> = config
124-
.after_get
125-
.map(|path_expr| parse_quote!(#path_expr(this, _owner);));
126120
let with_getter = get.map(|get| {
127121
let register_fn = match get {
128122
PropertyGet::Owned(_) => quote!(with_getter),
@@ -134,29 +128,18 @@ pub(crate) fn derive_native_class(derive_input: &DeriveInput) -> Result<TokenStr
134128
};
135129
quote!(
136130
.#register_fn(|this: &#name, _owner: ::gdnative::object::TRef<Self::Base>| {
137-
#before_get
138-
let res = #get;
139-
#after_get
140-
res
131+
#get
141132
})
142133
)
143134
});
144-
let before_set: Option<Stmt> = config
145-
.before_set
146-
.map(|path_expr| parse_quote!(#path_expr(this, _owner);));
147-
let after_set: Option<Stmt> = config
148-
.after_set
149-
.map(|path_expr| parse_quote!(#path_expr(this, _owner);));
150135
let with_setter = set.map(|set| {
151136
let set: Stmt = match set {
152137
PropertySet::Default => parse_quote!(this.#ident = v;),
153138
PropertySet::WithPath(path_expr) => parse_quote!(#path_expr(this, _owner, v);),
154139
};
155140
quote!(
156141
.with_setter(|this: &mut #name, _owner: ::gdnative::object::TRef<Self::Base>, v| {
157-
#before_set
158142
#set
159-
#after_set
160143
}))
161144
});
162145

@@ -351,40 +334,6 @@ mod tests {
351334
parse_derive_input(&input).unwrap();
352335
}
353336

354-
#[test]
355-
fn derive_property_before_get() {
356-
let input: TokenStream2 = syn::parse_str(
357-
r#"
358-
#[inherit(Node)]
359-
struct Foo {
360-
#[property(before_get = "foo::bar")]
361-
bar: String,
362-
}"#,
363-
)
364-
.unwrap();
365-
366-
let input: DeriveInput = syn::parse2(input).unwrap();
367-
368-
parse_derive_input(&input).unwrap();
369-
}
370-
371-
#[test]
372-
fn derive_property_before_get_err() {
373-
let input: TokenStream2 = syn::parse_str(
374-
r#"
375-
#[inherit(Node)]
376-
struct Foo {
377-
#[property(before_get = "foo::bar")]
378-
bar: String,
379-
}"#,
380-
)
381-
.unwrap();
382-
383-
let input: DeriveInput = syn::parse2(input).unwrap();
384-
385-
parse_derive_input(&input).unwrap();
386-
}
387-
388337
#[test]
389338
fn derive_property_no_editor() {
390339
let input: TokenStream2 = syn::parse_str(

gdnative-derive/src/native_script/property_args.rs

Lines changed: 0 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,8 @@ pub struct PropertyAttrArgs {
1818
pub path: Option<String>,
1919
pub default: Option<syn::Lit>,
2020
pub hint: Option<syn::Path>,
21-
pub before_get: Option<syn::Path>,
2221
pub get: Option<PropertyGet>,
23-
pub after_get: Option<syn::Path>,
24-
pub before_set: Option<syn::Path>,
2522
pub set: Option<PropertySet>,
26-
pub after_set: Option<syn::Path>,
2723
pub no_editor: bool,
2824
}
2925

@@ -32,12 +28,8 @@ pub struct PropertyAttrArgsBuilder {
3228
path: Option<String>,
3329
default: Option<syn::Lit>,
3430
hint: Option<syn::Path>,
35-
before_get: Option<syn::Path>,
3631
get: Option<PropertyGet>,
37-
after_get: Option<syn::Path>,
38-
before_set: Option<syn::Path>,
3932
set: Option<PropertySet>,
40-
after_set: Option<syn::Path>,
4133
no_editor: bool,
4234
}
4335

@@ -48,12 +40,8 @@ impl PropertyAttrArgsBuilder {
4840
path: None,
4941
default: None,
5042
hint: None,
51-
before_get: None,
5243
get: None,
53-
after_get: None,
54-
before_set: None,
5544
set: None,
56-
after_set: None,
5745
no_editor: false,
5846
}
5947
}
@@ -120,28 +108,6 @@ impl PropertyAttrArgsBuilder {
120108
));
121109
}
122110
}
123-
"before_get" => {
124-
let string = if let syn::Lit::Str(lit_str) = &pair.lit {
125-
lit_str.value()
126-
} else {
127-
return Err(syn::Error::new(
128-
pair.span(),
129-
"'before_get' value is not a string literal",
130-
));
131-
};
132-
133-
let path =
134-
syn::parse_str::<syn::Path>(string.as_str()).map_err(invalid_value_path)?;
135-
if let Some(old) = self.before_get.replace(path) {
136-
return Err(syn::Error::new(
137-
pair.span(),
138-
format!(
139-
"there is already a 'before_get' attribute with value: {:?}",
140-
old
141-
),
142-
));
143-
}
144-
}
145111
"get" => {
146112
let string = if let syn::Lit::Str(lit_str) = &pair.lit {
147113
lit_str.value()
@@ -185,50 +151,6 @@ impl PropertyAttrArgsBuilder {
185151
));
186152
}
187153
}
188-
"after_get" => {
189-
let string = if let syn::Lit::Str(lit_str) = &pair.lit {
190-
lit_str.value()
191-
} else {
192-
return Err(syn::Error::new(
193-
pair.span(),
194-
"'after_get' value is not a string literal",
195-
));
196-
};
197-
198-
let path =
199-
syn::parse_str::<syn::Path>(string.as_str()).map_err(invalid_value_path)?;
200-
if let Some(old) = self.after_get.replace(path) {
201-
return Err(syn::Error::new(
202-
pair.span(),
203-
format!(
204-
"there is already a 'after_get' attribute with value: {:?}",
205-
old
206-
),
207-
));
208-
}
209-
}
210-
"before_set" => {
211-
let string = if let syn::Lit::Str(lit_str) = &pair.lit {
212-
lit_str.value()
213-
} else {
214-
return Err(syn::Error::new(
215-
pair.span(),
216-
"'before_set' value is not a string literal",
217-
));
218-
};
219-
220-
let path =
221-
syn::parse_str::<syn::Path>(string.as_str()).map_err(invalid_value_path)?;
222-
if let Some(old) = self.before_set.replace(path) {
223-
return Err(syn::Error::new(
224-
pair.span(),
225-
format!(
226-
"there is already a 'before_set' attribute with value: {:?}",
227-
old
228-
),
229-
));
230-
}
231-
}
232154
"set" => {
233155
let string = if let syn::Lit::Str(lit_str) = &pair.lit {
234156
lit_str.value()
@@ -249,28 +171,6 @@ impl PropertyAttrArgsBuilder {
249171
));
250172
}
251173
}
252-
"after_set" => {
253-
let string = if let syn::Lit::Str(lit_str) = &pair.lit {
254-
lit_str.value()
255-
} else {
256-
return Err(syn::Error::new(
257-
pair.span(),
258-
"'after_set' value is not a string literal",
259-
));
260-
};
261-
262-
let path =
263-
syn::parse_str::<syn::Path>(string.as_str()).map_err(invalid_value_path)?;
264-
if let Some(old) = self.after_set.replace(path) {
265-
return Err(syn::Error::new(
266-
pair.span(),
267-
format!(
268-
"there is already a 'after_set' attribute with value: {:?}",
269-
old
270-
),
271-
));
272-
}
273-
}
274174
_ => {
275175
return Err(syn::Error::new(
276176
pair.span(),
@@ -317,12 +217,8 @@ impl PropertyAttrArgsBuilder {
317217
path: self.path,
318218
default: self.default,
319219
hint: self.hint,
320-
before_get: self.before_get,
321220
get: self.get,
322-
after_get: self.after_get,
323-
before_set: self.before_set,
324221
set: self.set,
325-
after_set: self.after_set,
326222
no_editor: self.no_editor,
327223
}
328224
}

gdnative/tests/ui/derive_property_basic.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ use gdnative::prelude::*;
44
fn test_hint() -> StringHint {
55
StringHint::File(EnumHint::new(vec![]))
66
}
7-
fn test_before_get(_this: &Foo, _owner: TRef<Node>) {}
8-
fn test_before_set(_this: &mut Foo, _owner: TRef<Node>) {}
9-
fn test_after_get(_this: &Foo, _owner: TRef<Node>) {}
10-
fn test_after_set(_this: &mut Foo, _owner: TRef<Node>) {}
117

128
#[derive(Default, NativeClass)]
139
#[inherit(Node)]
@@ -18,18 +14,6 @@ struct Foo {
1814
// hint
1915
#[property(hint = "test_hint")]
2016
prop_hint: String,
21-
22-
// before get & set
23-
#[property(before_get = "test_before_get")]
24-
prop_before_get: String,
25-
#[property(before_set = "test_before_set")]
26-
prop_before_set: String,
27-
28-
// after get & set
29-
#[property(after_get = "test_after_get")]
30-
prop_after_get: String,
31-
#[property(after_set = "test_after_set")]
32-
prop_after_set: String,
3317
}
3418

3519
#[methods]

0 commit comments

Comments
 (0)