orx_tree/traversal/
over_mut.rsuse super::{
    enumeration::Enumeration,
    node_item_mut::NodeItemMut,
    over::{Over, OverData, OverDepthData, OverDepthSiblingIdxData, OverSiblingIdxData},
};
use crate::{
    memory::{Auto, MemoryPolicy},
    pinned_storage::{PinnedStorage, SplitRecursive},
    TreeVariant,
};
use orx_selfref_col::Variant;
pub type OverItemMut<'a, V, O, M = Auto, P = SplitRecursive> =
    <<O as Over>::Enumeration as Enumeration>::Item<<O as OverMut>::NodeItemMut<'a, V, M, P>>;
pub type OverItemInto<'a, V, O> =
    <<O as Over>::Enumeration as Enumeration>::Item<<V as Variant>::Item>;
pub trait OverMut: Over {
    type NodeItemMut<'a, V, M, P>: NodeItemMut<'a, V, M, P>
    where
        M: MemoryPolicy,
        P: PinnedStorage,
        V: TreeVariant + 'a,
        Self: 'a;
}
impl OverMut for OverData {
    type NodeItemMut<'a, V, M, P>
        = &'a mut V::Item
    where
        M: MemoryPolicy,
        P: PinnedStorage,
        V: TreeVariant + 'a,
        Self: 'a;
}
impl OverMut for OverDepthData {
    type NodeItemMut<'a, V, M, P>
        = &'a mut V::Item
    where
        M: MemoryPolicy,
        P: PinnedStorage,
        V: TreeVariant + 'a,
        Self: 'a;
}
impl OverMut for OverSiblingIdxData {
    type NodeItemMut<'a, V, M, P>
        = &'a mut V::Item
    where
        M: MemoryPolicy,
        P: PinnedStorage,
        V: TreeVariant + 'a,
        Self: 'a;
}
impl OverMut for OverDepthSiblingIdxData {
    type NodeItemMut<'a, V, M, P>
        = &'a mut V::Item
    where
        M: MemoryPolicy,
        P: PinnedStorage,
        V: TreeVariant + 'a,
        Self: 'a;
}