diff --git a/godot-codegen/src/util.rs b/godot-codegen/src/util.rs index e599e170e..42af5ecff 100644 --- a/godot-codegen/src/util.rs +++ b/godot-codegen/src/util.rs @@ -72,6 +72,11 @@ pub fn make_enum_definition(enum_: &Enum) -> TokenStream { #enumerators )* } + impl std::default::Default for #enum_name { + fn default() -> Self { + Self { ord: 0 } + } + } impl crate::obj::EngineEnum for #enum_name { // fn try_from_ord(ord: i32) -> Option { // match ord { diff --git a/godot-core/src/obj/traits.rs b/godot-core/src/obj/traits.rs index 748ff1363..acfcb2f4c 100644 --- a/godot-core/src/obj/traits.rs +++ b/godot-core/src/obj/traits.rs @@ -103,7 +103,7 @@ pub trait EngineClass: GodotClass { } /// Auto-implemented for all engine-provided enums -pub trait EngineEnum: Copy { +pub trait EngineEnum: Copy + Default { fn try_from_ord(ord: i32) -> Option; /// Ordinal value of the enumerator, as specified in Godot.