Skip to content

Commit 1d5fc8e

Browse files
bors[bot]Bromeon
andauthored
Merge #828
828: Remove deprecated symbols from v0.9 r=Bromeon a=Bromeon Changes: * `PoolArray` type aliases: document name of Godot equivalent + API link * `ClassBuilder` * Remove `add_method()` * Remove `add_method_advanced()` -- now private * Remove `add_method_with_rpc_mode()` * Rename `add_property()` -> `property()` * Rename `build_method()` -> `method()` * Add `signal()` * Add `SignalBuilder` + `with_param*()` methods * Remove `ScriptMethod`, `ScriptMethodFn`, `ScriptMethodAttributes` * Remove `Color::rgb()`, `Color::rgba()` * Remove `Reference::init_ref()` (unsound to call directly) * Remove `FloatHint::Enum` (has no effect) * Rename `Element` -> `PoolElement` * Rename `SignalArgument` -> `SignalParam` * Rename `String::forget()` -> `leak()` * Rename `Variant::forget()` -> `leak()` * Fix bug with signal parameter types annotated in builder not propagated to Godot * Annotate 3 builders with `#[must_use]` to avoid forgetting building * Not done for `ClassBuilder`; it's not a builder in that sense Co-authored-by: Jan Haller <[email protected]>
2 parents 86e9583 + 305b57f commit 1d5fc8e

File tree

36 files changed

+383
-300
lines changed

36 files changed

+383
-300
lines changed

bindings_generator/src/methods.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ impl MethodSig {
136136
}
137137

138138
fn skip_method(method: &GodotMethod, name: &str) -> bool {
139-
const METHODS: &[&str] = &["free", "reference", "unreference"];
139+
const METHODS: &[&str] = &["free", "reference", "unreference", "init_ref"];
140140
METHODS.contains(&name) || method.is_virtual
141141
}
142142

examples/array_export/src/lib.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,28 @@ impl ExportsArrays {
1414

1515
fn register(builder: &ClassBuilder<Self>) {
1616
builder
17-
.add_property::<VariantArray>("single_array")
17+
.property::<VariantArray>("single_array")
1818
.with_setter(ExportsArrays::set_single_array)
1919
.done();
20+
2021
builder
21-
.add_property::<VariantArray>("single_array_range")
22+
.property::<VariantArray>("single_array_range")
2223
.with_setter(ExportsArrays::set_single_array_range)
2324
.with_hint(ArrayHint::with_element_hint::<i64>(IntHint::Range(
2425
RangeHint::new(-5, 5),
2526
)))
2627
.done();
28+
2729
builder
28-
.add_property::<VariantArray>("double_array")
30+
.property::<VariantArray>("double_array")
2931
.with_setter(ExportsArrays::set_double_array)
3032
.with_hint(ArrayHint::with_element_hint::<VariantArray>(
3133
ArrayHint::new(),
3234
))
3335
.done();
36+
3437
builder
35-
.add_property::<VariantArray>("double_array_range")
38+
.property::<VariantArray>("double_array_range")
3639
.with_setter(ExportsArrays::set_double_array_range)
3740
.with_hint(ArrayHint::with_element_hint::<VariantArray>(
3841
ArrayHint::with_element_hint::<i64>(IntHint::Range(RangeHint::new(-5, 5))),

examples/dodge_the_creeps/src/hud.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ pub struct Hud;
99
#[methods]
1010
impl Hud {
1111
fn register_hud(builder: &ClassBuilder<Self>) {
12-
builder.add_signal(Signal {
13-
name: "start_game",
14-
args: &[],
15-
});
12+
builder.signal("start_game").done();
1613
}
1714

1815
fn new(_owner: &CanvasLayer) -> Self {

examples/dodge_the_creeps/src/player.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ pub struct Player {
1616
#[methods]
1717
impl Player {
1818
fn register_player(builder: &ClassBuilder<Self>) {
19-
builder.add_signal(Signal {
20-
name: "hit",
21-
args: &[],
22-
});
19+
builder.signal("hit").done()
2320
}
2421

2522
fn new(_owner: &Area2D) -> Self {

examples/signals/src/lib.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,13 @@ struct SignalEmitter {
1212
#[methods]
1313
impl SignalEmitter {
1414
fn register_signals(builder: &ClassBuilder<Self>) {
15-
builder.add_signal(Signal {
16-
name: "tick",
17-
args: &[],
18-
});
15+
builder.signal("tick").done();
1916

20-
builder.add_signal(Signal {
21-
name: "tick_with_data",
17+
builder
18+
.signal("tick_with_data")
2219
// Argument list used by the editor for GUI and generation of GDScript handlers. It can be omitted if the signal is only used from code.
23-
args: &[SignalArgument {
24-
name: "data",
25-
default: Variant::new(100),
26-
export_info: ExportInfo::new(VariantType::I64),
27-
usage: PropertyUsage::DEFAULT,
28-
}],
29-
});
20+
.with_param_default("data", Variant::new(100))
21+
.done();
3022
}
3123

3224
fn new(_owner: &Node) -> Self {

examples/spinning_cube/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ struct RustTest {
1515

1616
fn register_properties(builder: &ClassBuilder<RustTest>) {
1717
builder
18-
.add_property::<String>("test/test_enum")
18+
.property::<String>("test/test_enum")
1919
.with_hint(StringHint::Enum(EnumHint::new(vec![
2020
"Hello".into(),
2121
"World".into(),
@@ -25,7 +25,7 @@ fn register_properties(builder: &ClassBuilder<RustTest>) {
2525
.done();
2626

2727
builder
28-
.add_property("test/test_flags")
28+
.property("test/test_flags")
2929
.with_hint(IntHint::Flags(EnumHint::new(vec![
3030
"A".into(),
3131
"B".into(),

gdnative-async/src/rt/bridge.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,6 @@ impl Method<SignalBridge> for OnSignalFn {
134134

135135
impl NativeClassMethods for SignalBridge {
136136
fn register(builder: &ClassBuilder<Self>) {
137-
builder
138-
.build_method("_on_signal", OnSignalFn)
139-
.done_stateless();
137+
builder.method("_on_signal", OnSignalFn).done_stateless();
140138
}
141139
}

gdnative-async/src/rt/func_state.rs

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use gdnative_bindings::Reference;
2-
use gdnative_core::core_types::{ToVariant, Variant, VariantType};
2+
use gdnative_core::core_types::{ToVariant, Variant};
33
use gdnative_core::export::user_data::{LocalCellData, Map, MapMut};
44
use gdnative_core::export::{
5-
ClassBuilder, ExportInfo, NativeClass, NativeClassMethods, PropertyUsage, Signal,
6-
SignalArgument, StaticArgs, StaticArgsMethod,
5+
ClassBuilder, NativeClass, NativeClassMethods, StaticArgs, StaticArgsMethod,
76
};
87
use gdnative_core::godot_site;
98
use gdnative_core::object::ownership::Unique;
@@ -32,20 +31,12 @@ impl NativeClass for FuncState {
3231
}
3332

3433
fn register_properties(builder: &ClassBuilder<Self>) {
35-
builder.add_signal(Signal {
36-
name: "completed",
37-
args: &[SignalArgument {
38-
name: "value",
39-
default: Variant::nil(),
40-
export_info: ExportInfo::new(VariantType::Nil),
41-
usage: PropertyUsage::DEFAULT,
42-
}],
43-
});
44-
45-
builder.add_signal(Signal {
46-
name: "resumable",
47-
args: &[],
48-
});
34+
builder
35+
.signal("completed")
36+
.with_param_untyped("value")
37+
.done();
38+
39+
builder.signal("resumable").done();
4940
}
5041
}
5142

@@ -169,10 +160,10 @@ impl StaticArgsMethod<FuncState> for ResumeFn {
169160
impl NativeClassMethods for FuncState {
170161
fn register(builder: &ClassBuilder<Self>) {
171162
builder
172-
.build_method("is_valid", StaticArgs::new(IsValidFn))
163+
.method("is_valid", StaticArgs::new(IsValidFn))
173164
.done_stateless();
174165
builder
175-
.build_method("resume", StaticArgs::new(ResumeFn))
166+
.method("resume", StaticArgs::new(ResumeFn))
176167
.done_stateless();
177168
}
178169
}

gdnative-core/src/core_types/access.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ pub unsafe trait Guard: private::Sealed {
5050
pub unsafe trait WritePtr: Guard + private::Sealed {}
5151

5252
pub(crate) mod private {
53-
use crate::core_types::pool_array::Element;
53+
use crate::core_types::PoolElement;
5454

5555
pub trait Sealed {}
5656

57-
impl<'a, T: Element> Sealed for crate::core_types::pool_array::ReadGuard<'a, T> {}
58-
impl<'a, T: Element> Sealed for crate::core_types::pool_array::WriteGuard<'a, T> {}
57+
impl<'a, T: PoolElement> Sealed for crate::core_types::pool_array::ReadGuard<'a, T> {}
58+
impl<'a, T: PoolElement> Sealed for crate::core_types::pool_array::WriteGuard<'a, T> {}
5959
}
6060

6161
impl<G: Guard> MaybeUnaligned<G> {

gdnative-core/src/core_types/byte_array.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use crate::core_types::PoolArray;
22

33
/// A reference-counted vector of `u8` that uses Godot's pool allocator.
4+
///
5+
/// See [`PoolByteArray`](https://docs.godotengine.org/en/stable/classes/class_poolbytearray.html) in Godot.
46
pub type ByteArray = PoolArray<u8>;
57

68
godot_test!(

0 commit comments

Comments
 (0)