diff --git a/crates/bevy_ecs/macros/src/lib.rs b/crates/bevy_ecs/macros/src/lib.rs index fecd948d0ed5b..8fae4ee957936 100644 --- a/crates/bevy_ecs/macros/src/lib.rs +++ b/crates/bevy_ecs/macros/src/lib.rs @@ -373,13 +373,14 @@ pub fn derive_system_param(input: TokenStream) -> TokenStream { let struct_name = &ast.ident; let fetch_struct_name = Ident::new(&format!("{}State", struct_name), Span::call_site()); + let fetch_struct_visibility = &ast.vis; TokenStream::from(quote! { impl #impl_generics #path::system::SystemParam for #struct_name#ty_generics #where_clause { type Fetch = #fetch_struct_name <(#(<#field_types as SystemParam>::Fetch,)*), #punctuated_generic_idents>; } - pub struct #fetch_struct_name { + #fetch_struct_visibility struct #fetch_struct_name { state: TSystemParamState, marker: std::marker::PhantomData<(#punctuated_generic_idents)> } diff --git a/crates/bevy_ecs/src/system/system_param.rs b/crates/bevy_ecs/src/system/system_param.rs index 21e3e39e89a35..e5c629eabbb28 100644 --- a/crates/bevy_ecs/src/system/system_param.rs +++ b/crates/bevy_ecs/src/system/system_param.rs @@ -25,7 +25,7 @@ use std::{ /// use bevy_ecs::system::SystemParam; /// /// #[derive(SystemParam)] -/// pub struct MyParam<'a> { +/// struct MyParam<'a> { /// foo: Res<'a, usize>, /// } /// diff --git a/examples/ecs/system_param.rs b/examples/ecs/system_param.rs index a2aef47c6cb93..97baba11f414c 100644 --- a/examples/ecs/system_param.rs +++ b/examples/ecs/system_param.rs @@ -17,7 +17,7 @@ pub struct PlayerCount(usize); /// /// In this example, it includes a query and a mutable resource. #[derive(SystemParam)] -pub struct PlayerCounter<'a> { +struct PlayerCounter<'a> { players: Query<'a, &'static Player>, count: ResMut<'a, PlayerCount>, }