pub trait ReceiveDir<IdN, Idx, O>: Sized + ReceiveParent<IdN, Self::SA1> + SetNode<IdN, O> + SetFileName<Self::SB1<O>> + Transition<Self::SB1<O>> {
type SA1: ReceiveIdx<Idx, Self::SA2>;
type SA2: ReceiveDirName<Self>;
type SB1<OO>;
}
pub trait ReceiveDir<IdN, Idx, O>: Sized + ReceiveParent<IdN, Self::SA1> + SetNode<IdN, O> + SetFileName<Self::SB1<O>> + Transition<Self::SB1<O>> {
type SA1: ReceiveIdx<Idx, Self::SA2>;
type SA2: ReceiveDirName<Self>;
type SB1<OO>;
}