Skip to content

Commit

Permalink
Better doc for SystemName (bevyengine#11084)
Browse files Browse the repository at this point in the history
Compared to [current
documentation](https://docs.rs/bevy/latest/bevy/ecs/system/struct.SystemName.html)
it is now immediately clear that it is `SystemParam` readily available
to user, and not just some accidentally exposed internal data type.
  • Loading branch information
stepancheg authored Dec 25, 2023
1 parent 13feac6 commit ac58a5f
Showing 1 changed file with 25 additions and 3 deletions.
28 changes: 25 additions & 3 deletions crates/bevy_ecs/src/system/system_param.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1287,10 +1287,32 @@ unsafe impl SystemParam for SystemChangeTick {
}
}

/// Name of the system that corresponds to this [`crate::system::SystemState`].
/// [`SystemParam`] that returns the name of the system which it is used in.
///
/// This is not a reliable identifier, it is more so useful for debugging
/// purposes of finding where a system parameter is being used incorrectly.
/// This is not a reliable identifier, it is more so useful for debugging or logging.
///
/// # Examples
///
/// ```
/// # use bevy_ecs::system::SystemName;
/// # use bevy_ecs::system::SystemParam;
///
/// #[derive(SystemParam)]
/// struct Logger<'s> {
/// system_name: SystemName<'s>,
/// }
///
/// impl<'s> Logger<'s> {
/// fn log(&mut self, message: &str) {
/// eprintln!("{}: {}", self.system_name, message);
/// }
/// }
///
/// fn system1(mut logger: Logger) {
/// // Prints: "crate_name::mod_name::system1: Hello".
/// logger.log("Hello");
/// }
/// ```
#[derive(Debug)]
pub struct SystemName<'s>(&'s str);

Expand Down

0 comments on commit ac58a5f

Please sign in to comment.