macro_rules! impl_dep_obj_impl {
(
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*]
$Id:ty {
$($objs:tt)*
}
) => { ... };
(
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*]
$token:tt $($tail:tt)*
) => { ... };
(
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> ($Obj:ty) { $StatePart:ty | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> ($Obj:ty) { $StatePart:ty { . $state_part_field:tt } | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> optional ($Obj:ty) { $StatePart:ty | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> optional ($Obj:ty) { $StatePart:ty { . $state_part_field:tt } | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> dyn($Obj:path) { $StatePart:ty | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> dyn($Obj:path) { $StatePart:ty { . $state_part_field:tt } | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> optional dyn($Obj:path) { $StatePart:ty | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[ fn<$DepObjKey:tt>() -> optional dyn($Obj:path) { $StatePart:ty { . $state_part_field:tt } | . $component_field:tt } $($tail:tt)* ]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$([[$ty_Obj:ty] [$ty_Key:ty] [$ty_StatePart:ty] [$($ty_state_part_field:tt)*] [$($ty_component_field:tt)*]])*]
[$([[$opt_ty_Obj:ty] [$opt_ty_Key:ty] [$opt_ty_StatePart:ty] [$($opt_ty_state_part_field:tt)*] [$($opt_ty_component_field:tt)*]])*]
[$([[$tr_Obj:path] [$tr_Key:ty] [$tr_StatePart:ty] [$($tr_state_part_field:tt)*] [$($tr_component_field:tt)*]])*]
[$([[$opt_tr_Obj:path] [$opt_tr_Key:ty] [$opt_tr_StatePart:ty] [$($opt_tr_state_part_field:tt)*] [$($opt_tr_component_field:tt)*]])*]
[]
) => { ... };
(
@objs
[$($g:tt)*] [$($r:tt)*] [$($w:tt)*] [$Id:ty]
[$($ty:tt)*] [$($opt_ty:tt)*] [$($tr:tt)*] [$($opt_tr:tt)*]
[$token:tt $($tail:tt)*]
) => { ... };
}