diff --git a/src/field.rs b/src/field.rs index f7feb1f..d1a529d 100644 --- a/src/field.rs +++ b/src/field.rs @@ -11,8 +11,6 @@ use core::any::TypeId; use core::marker::PhantomData; -// use bevy_ecs::prelude::*; - /// A statically typed field path from a source type `S` to a target /// type `T`. /// @@ -137,22 +135,19 @@ impl _FieldBuilder { /// age: u32, /// } /// -/// let player_name: Field = field!(::name); -/// let player_age: Field = field!(::age); +/// const PLAYER_NAME: Field = field!(::name); +/// let PLAYER_AGE: Field = field!(::age); /// -/// assert_ne!(player_name.untyped(), player_age.untyped()); +/// assert_ne!(PLAYER_NAME.untyped(), PLAYER_AGE.untyped()); /// ``` #[macro_export] macro_rules! field { (<$source:ty>$(::$field:tt)*) => { - { - let builder = $crate::field::_FieldBuilder::new( - |source: $source| source$(.$field)*, - $crate::stringify_field!($(::$field)*), - ); - - builder.build() - } + $crate::field::_FieldBuilder::new( + |source: $source| source$(.$field)*, + $crate::stringify_field!($(::$field)*), + ) + .build() }; } pub use field; @@ -282,14 +277,19 @@ mod tests { } #[test] - fn test_field() { - let field = field!(); - assert_eq!(field.field_path, ""); - - let field = field!(::0); - assert_eq!(field.field_path, stringify_field!(::0)); - - let field = field!(::inner::0); - assert_eq!(field.field_path, stringify_field!(::inner::0)); + fn field_path_matches() { + const FIELD: Field = field!(); + assert_eq!(FIELD.field_path, ""); + + const FIELD_0: Field = field!(::0); + assert_eq!(FIELD_0.field_path, stringify_field!(::0), "::0"); + + const FIELD_INNER_0: Field = + field!(::inner::0); + assert_eq!( + FIELD_INNER_0.field_path, + stringify_field!(::inner::0), + "::inner::0" + ); } }