 fcfb685821
			
		
	
	
		fcfb685821
		
			
		
	
	
	
	
		
			
			# Objective - I got tired of calling `enable_state_scoped_entities`, and though it would make more sense to define that at the place where the state is defined ## Solution - add a derive attribute `#[states(scoped_entities)]` when derive `States` or `SubStates` that enables it automatically when adding the state ## Testing - Ran the examples using it, they still work
		
			
				
	
	
		
			25 lines
		
	
	
		
			700 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			700 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // FIXME(15321): solve CI failures, then replace with `#![expect()]`.
 | |
| #![allow(missing_docs, reason = "Not all docs are written yet, see #3492.")]
 | |
| #![cfg_attr(docsrs, feature(doc_auto_cfg))]
 | |
| 
 | |
| extern crate proc_macro;
 | |
| 
 | |
| mod states;
 | |
| 
 | |
| use bevy_macro_utils::BevyManifest;
 | |
| use proc_macro::TokenStream;
 | |
| 
 | |
| #[proc_macro_derive(States, attributes(states))]
 | |
| pub fn derive_states(input: TokenStream) -> TokenStream {
 | |
|     states::derive_states(input)
 | |
| }
 | |
| 
 | |
| #[proc_macro_derive(SubStates, attributes(states, source))]
 | |
| pub fn derive_substates(input: TokenStream) -> TokenStream {
 | |
|     states::derive_substates(input)
 | |
| }
 | |
| 
 | |
| pub(crate) fn bevy_state_path() -> syn::Path {
 | |
|     BevyManifest::default().get_path("bevy_state")
 | |
| }
 |