1use hashbrown::HashMap;
2pub use type_cell::*;
3pub type TyMap<K,V> = HashMap<K,V>;
4
5#[macro_export]
6macro_rules! bycell {
7 (=$on:ty: [$o:ty|$($name:tt)*];)=>{paste!{
9 tycell!{ $on > Handle<$o>: [$($name)*.clone_weak()]; }
10 }};
11 (=$on:ty: [|$($name:tt)*];)=>{paste!{
12 tycell!{ !Handle<$on>: [$($name)*.clone_weak()]; }
13 }};
14 (=$on:ty: [$o:ty:$($name:tt)*];)=>{paste!{
16 tycell!{ $on > $o: [$($name)*]; }
17 }};
18 (=$on:ty: [:$($name:tt)*];)=>{paste!{
19 tycell!{ $on: [$($name)*]; }
20 }};
21 (=$on:ty: [$($name:tt)*];)=>{paste!{
23 tycell!{ $on > Entity: [$($name)*.clone()]; }
24 }};
25 ($( $on:ty: $([$($name:tt)*])*;)*)=>{paste!{
27 $($(bycell!{= $on: [$($name)*]; })*)*
28 }};
29 ($( {$on:ty} $([$($name:tt)*])*)*)=>{paste!{
30 $($(bycell!{= $on: [$($name)*]; })*)*
31 }};
32}