Skip to content

Commit d92b0b3

Browse files
Merge #265
265: VariantMetadata blanket impl for EngineEnum r=Bromeon a=Mercerenies Fix for #264. Co-authored-by: Silvio Mayolo <[email protected]>
2 parents 1f3e46d + 9b25645 commit d92b0b3

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

godot-core/src/builtin/variant/impls.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,12 @@ impl<T: EngineEnum> FromVariant for T {
254254
.and_then(|int| Self::try_from_ord(int).ok_or(VariantConversionError))
255255
}
256256
}
257+
258+
impl<T: EngineEnum> VariantMetadata for T {
259+
fn variant_type() -> VariantType {
260+
VariantType::Int
261+
}
262+
fn param_metadata() -> sys::GDExtensionClassMethodArgumentMetadata {
263+
sys::GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT32
264+
}
265+
}

itest/rust/build.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ fn collect_inputs() -> Vec<Input> {
8484
push!(inputs; int, InstanceId, -1, InstanceId::from_nonzero(0xFFFFFFFFFFFFFFF));
8585
push!(inputs; Variant, Variant, 123, 123i64.to_variant());
8686

87+
// EngineEnum
88+
push!(inputs; int, Error, 0, Error::OK);
89+
8790
inputs
8891
}
8992

@@ -94,6 +97,7 @@ fn main() {
9497
let rust_tokens = quote::quote! {
9598
use godot::builtin::*;
9699
use godot::obj::InstanceId;
100+
use godot::engine::global::Error;
97101

98102
#[derive(godot::bind::GodotClass)]
99103
#[class(init)]

0 commit comments

Comments
 (0)