 60be8759e3
			
		
	
	
		60be8759e3
		
	
	
	
	
		
			
			# Objective - It can be useful for third party crates to work independently on how bevy is imported ## Solution - Expose an helper to get a subcrate path for macros
		
			
				
	
	
		
			30 lines
		
	
	
		
			856 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			856 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use bevy_macro_utils::BevyManifest;
 | |
| use encase_derive_impl::{implement, syn};
 | |
| 
 | |
| const ENCASE: &str = "encase";
 | |
| 
 | |
| fn bevy_encase_path() -> syn::Path {
 | |
|     let bevy_manifest = BevyManifest::default();
 | |
|     bevy_manifest
 | |
|         .get_subcrate("render")
 | |
|         .map(|bevy_render_path| {
 | |
|             let mut segments = bevy_render_path.segments;
 | |
|             segments.push(BevyManifest::parse_str("render_resource"));
 | |
|             syn::Path {
 | |
|                 leading_colon: None,
 | |
|                 segments,
 | |
|             }
 | |
|         })
 | |
|         .map(|path| {
 | |
|             let mut segments = path.segments;
 | |
|             segments.push(BevyManifest::parse_str(ENCASE));
 | |
|             syn::Path {
 | |
|                 leading_colon: None,
 | |
|                 segments,
 | |
|             }
 | |
|         })
 | |
|         .unwrap_or_else(|| bevy_manifest.get_path(ENCASE))
 | |
| }
 | |
| 
 | |
| implement!(bevy_encase_path());
 |