Skip to content

chore: Fix bindings stability, order things more #200

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .github/workflows/generate_bindings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,6 @@ name: Generate Bindings (Bevy, Glam)

on:
workflow_call:
# inputs:
# config-path:
# required: true
# type: string
# secrets:
# token:
# required: true
workflow_dispatch:

env:
Expand Down
4 changes: 3 additions & 1 deletion crates/bevy_api_gen/src/passes/populate_template_data.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ pub(crate) fn populate_template_data(ctxt: &mut BevyCtxt<'_>, args: &Args) -> bo

let has_static_methods = fn_ctxts.iter().any(|fn_ctxt| !fn_ctxt.has_self);

let functions = process_functions(ctxt, fn_ctxts);
let mut functions = process_functions(ctxt, fn_ctxts);
functions.sort_by(|a, b| a.ident.cmp(&b.ident));

let variant = ty_ctxt.variant_data.as_ref().unwrap();

let is_tuple_struct = variant.is_struct()
Expand Down
20 changes: 10 additions & 10 deletions crates/bevy_mod_scripting_functions/src/bevy_bindings/bevy_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ impl ::bevy::app::Plugin for BevyCoreScriptingPlugin {
fn build(&self, app: &mut ::bevy::prelude::App) {
let mut world = app.world_mut();
NamespaceBuilder::<::bevy::core::prelude::Name>::new(world)
.register(
"clone",
|_self: Ref<bevy::core::prelude::Name>| {
let output: Val<bevy::core::prelude::Name> = <bevy::core::prelude::Name as std::clone::Clone>::clone(
&_self,
)
.into();
output
},
)
.register(
"eq",
|
Expand All @@ -32,16 +42,6 @@ impl ::bevy::app::Plugin for BevyCoreScriptingPlugin {
.into();
output
},
)
.register(
"clone",
|_self: Ref<bevy::core::prelude::Name>| {
let output: Val<bevy::core::prelude::Name> = <bevy::core::prelude::Name as std::clone::Clone>::clone(
&_self,
)
.into();
output
},
);
}
}
148 changes: 74 additions & 74 deletions crates/bevy_mod_scripting_functions/src/bevy_bindings/bevy_ecs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,24 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
let mut world = app.world_mut();
NamespaceBuilder::<::bevy::ecs::entity::Entity>::new(world)
.register(
"from_raw",
|index: u32| {
let output: Val<bevy::ecs::entity::Entity> = bevy::ecs::entity::Entity::from_raw(
index,
"clone",
|_self: Ref<bevy::ecs::entity::Entity>| {
let output: Val<bevy::ecs::entity::Entity> = <bevy::ecs::entity::Entity as std::clone::Clone>::clone(
&_self,
)
.into();
output
},
)
.register(
"to_bits",
|_self: Val<bevy::ecs::entity::Entity>| {
let output: u64 = bevy::ecs::entity::Entity::to_bits(
_self.into_inner(),
)
"eq",
|
_self: Ref<bevy::ecs::entity::Entity>,
other: Ref<bevy::ecs::entity::Entity>|
{
let output: bool = <bevy::ecs::entity::Entity as std::cmp::PartialEq<
bevy::ecs::entity::Entity,
>>::eq(&_self, &other)
.into();
output
},
Expand All @@ -50,10 +53,10 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
},
)
.register(
"index",
|_self: Val<bevy::ecs::entity::Entity>| {
let output: u32 = bevy::ecs::entity::Entity::index(
_self.into_inner(),
"from_raw",
|index: u32| {
let output: Val<bevy::ecs::entity::Entity> = bevy::ecs::entity::Entity::from_raw(
index,
)
.into();
output
Expand All @@ -70,24 +73,21 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
},
)
.register(
"clone",
|_self: Ref<bevy::ecs::entity::Entity>| {
let output: Val<bevy::ecs::entity::Entity> = <bevy::ecs::entity::Entity as std::clone::Clone>::clone(
&_self,
"index",
|_self: Val<bevy::ecs::entity::Entity>| {
let output: u32 = bevy::ecs::entity::Entity::index(
_self.into_inner(),
)
.into();
output
},
)
.register(
"eq",
|
_self: Ref<bevy::ecs::entity::Entity>,
other: Ref<bevy::ecs::entity::Entity>|
{
let output: bool = <bevy::ecs::entity::Entity as std::cmp::PartialEq<
bevy::ecs::entity::Entity,
>>::eq(&_self, &other)
"to_bits",
|_self: Val<bevy::ecs::entity::Entity>| {
let output: u64 = bevy::ecs::entity::Entity::to_bits(
_self.into_inner(),
)
.into();
output
},
Expand All @@ -107,6 +107,16 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
output
},
)
.register(
"clone",
|_self: Ref<bevy::ecs::component::ComponentId>| {
let output: Val<bevy::ecs::component::ComponentId> = <bevy::ecs::component::ComponentId as std::clone::Clone>::clone(
&_self,
)
.into();
output
},
)
.register(
"eq",
|
Expand All @@ -121,10 +131,10 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
},
)
.register(
"clone",
|_self: Ref<bevy::ecs::component::ComponentId>| {
let output: Val<bevy::ecs::component::ComponentId> = <bevy::ecs::component::ComponentId as std::clone::Clone>::clone(
&_self,
"index",
|_self: Val<bevy::ecs::component::ComponentId>| {
let output: usize = bevy::ecs::component::ComponentId::index(
_self.into_inner(),
)
.into();
output
Expand All @@ -139,22 +149,22 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
.into();
output
},
)
);
NamespaceBuilder::<::bevy::ecs::component::Tick>::new(world)
.register(
"index",
|_self: Val<bevy::ecs::component::ComponentId>| {
let output: usize = bevy::ecs::component::ComponentId::index(
_self.into_inner(),
"assert_receiver_is_total_eq",
|_self: Ref<bevy::ecs::component::Tick>| {
let output: () = <bevy::ecs::component::Tick as std::cmp::Eq>::assert_receiver_is_total_eq(
&_self,
)
.into();
output
},
);
NamespaceBuilder::<::bevy::ecs::component::Tick>::new(world)
)
.register(
"assert_receiver_is_total_eq",
"clone",
|_self: Ref<bevy::ecs::component::Tick>| {
let output: () = <bevy::ecs::component::Tick as std::cmp::Eq>::assert_receiver_is_total_eq(
let output: Val<bevy::ecs::component::Tick> = <bevy::ecs::component::Tick as std::clone::Clone>::clone(
&_self,
)
.into();
Expand All @@ -174,16 +184,6 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
output
},
)
.register(
"new",
|tick: u32| {
let output: Val<bevy::ecs::component::Tick> = bevy::ecs::component::Tick::new(
tick,
)
.into();
output
},
)
.register(
"get",
|_self: Val<bevy::ecs::component::Tick>| {
Expand All @@ -192,14 +192,6 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
output
},
)
.register(
"set",
|mut _self: Mut<bevy::ecs::component::Tick>, tick: u32| {
let output: () = bevy::ecs::component::Tick::set(&mut _self, tick)
.into();
output
},
)
.register(
"is_newer_than",
|
Expand All @@ -217,14 +209,22 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
},
)
.register(
"clone",
|_self: Ref<bevy::ecs::component::Tick>| {
let output: Val<bevy::ecs::component::Tick> = <bevy::ecs::component::Tick as std::clone::Clone>::clone(
&_self,
"new",
|tick: u32| {
let output: Val<bevy::ecs::component::Tick> = bevy::ecs::component::Tick::new(
tick,
)
.into();
output
},
)
.register(
"set",
|mut _self: Mut<bevy::ecs::component::Tick>, tick: u32| {
let output: () = bevy::ecs::component::Tick::set(&mut _self, tick)
.into();
output
},
);
NamespaceBuilder::<::bevy::ecs::component::ComponentTicks>::new(world)
.register(
Expand Down Expand Up @@ -294,6 +294,16 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
},
);
NamespaceBuilder::<::bevy::ecs::identifier::Identifier>::new(world)
.register(
"clone",
|_self: Ref<bevy::ecs::identifier::Identifier>| {
let output: Val<bevy::ecs::identifier::Identifier> = <bevy::ecs::identifier::Identifier as std::clone::Clone>::clone(
&_self,
)
.into();
output
},
)
.register(
"eq",
|
Expand All @@ -308,10 +318,10 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
},
)
.register(
"clone",
|_self: Ref<bevy::ecs::identifier::Identifier>| {
let output: Val<bevy::ecs::identifier::Identifier> = <bevy::ecs::identifier::Identifier as std::clone::Clone>::clone(
&_self,
"from_bits",
|value: u64| {
let output: Val<bevy::ecs::identifier::Identifier> = bevy::ecs::identifier::Identifier::from_bits(
value,
)
.into();
output
Expand Down Expand Up @@ -346,16 +356,6 @@ impl ::bevy::app::Plugin for BevyEcsScriptingPlugin {
.into();
output
},
)
.register(
"from_bits",
|value: u64| {
let output: Val<bevy::ecs::identifier::Identifier> = bevy::ecs::identifier::Identifier::from_bits(
value,
)
.into();
output
},
);
NamespaceBuilder::<::bevy::ecs::entity::EntityHash>::new(world)
.register(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ impl ::bevy::app::Plugin for BevyHierarchyScriptingPlugin {
},
);
NamespaceBuilder::<::bevy::hierarchy::prelude::Parent>::new(world)
.register(
"assert_receiver_is_total_eq",
|_self: Ref<bevy::hierarchy::prelude::Parent>| {
let output: () = <bevy::hierarchy::prelude::Parent as std::cmp::Eq>::assert_receiver_is_total_eq(
&_self,
)
.into();
output
},
)
.register(
"eq",
|
Expand All @@ -50,30 +60,17 @@ impl ::bevy::app::Plugin for BevyHierarchyScriptingPlugin {
.into();
output
},
)
);
NamespaceBuilder::<::bevy::hierarchy::HierarchyEvent>::new(world)
.register(
"assert_receiver_is_total_eq",
|_self: Ref<bevy::hierarchy::prelude::Parent>| {
let output: () = <bevy::hierarchy::prelude::Parent as std::cmp::Eq>::assert_receiver_is_total_eq(
|_self: Ref<bevy::hierarchy::HierarchyEvent>| {
let output: () = <bevy::hierarchy::HierarchyEvent as std::cmp::Eq>::assert_receiver_is_total_eq(
&_self,
)
.into();
output
},
);
NamespaceBuilder::<::bevy::hierarchy::HierarchyEvent>::new(world)
.register(
"eq",
|
_self: Ref<bevy::hierarchy::HierarchyEvent>,
other: Ref<bevy::hierarchy::HierarchyEvent>|
{
let output: bool = <bevy::hierarchy::HierarchyEvent as std::cmp::PartialEq<
bevy::hierarchy::HierarchyEvent,
>>::eq(&_self, &other)
.into();
output
},
)
.register(
"clone",
Expand All @@ -86,11 +83,14 @@ impl ::bevy::app::Plugin for BevyHierarchyScriptingPlugin {
},
)
.register(
"assert_receiver_is_total_eq",
|_self: Ref<bevy::hierarchy::HierarchyEvent>| {
let output: () = <bevy::hierarchy::HierarchyEvent as std::cmp::Eq>::assert_receiver_is_total_eq(
&_self,
)
"eq",
|
_self: Ref<bevy::hierarchy::HierarchyEvent>,
other: Ref<bevy::hierarchy::HierarchyEvent>|
{
let output: bool = <bevy::hierarchy::HierarchyEvent as std::cmp::PartialEq<
bevy::hierarchy::HierarchyEvent,
>>::eq(&_self, &other)
.into();
output
},
Expand Down
Loading
Loading