pub struct Walk<L: Lang> {
pub ids: Vec<L::Id>,
pub root: L::Id,
/* private fields */
}Expand description
先序遍历的快照:id 列表 + 每个非根节点的 (parent, child_index)。
快照在遍历时一次性取出;之后 apply 编辑不影响本次快照的正确性 (arena 追加式,Id 永不失效;被改动节点的旧信息由“命中即重启扫描”策略规避)。
Fields§
§ids: Vec<L::Id>§root: L::IdImplementations§
Auto Trait Implementations§
impl<L> Freeze for Walk<L>
impl<L> RefUnwindSafe for Walk<L>where
Vec<<L as Lang>::Id>: RefUnwindSafe,
HashMap<<L as Lang>::Id, (<L as Lang>::Id, usize), BuildHasherDefault<IdHasher>>: RefUnwindSafe,
<L as Lang>::Id: RefUnwindSafe,
impl<L> Send for Walk<L>
impl<L> Sync for Walk<L>
impl<L> Unpin for Walk<L>
impl<L> UnsafeUnpin for Walk<L>where
Vec<<L as Lang>::Id>: UnsafeUnpin,
HashMap<<L as Lang>::Id, (<L as Lang>::Id, usize), BuildHasherDefault<IdHasher>>: UnsafeUnpin,
<L as Lang>::Id: UnsafeUnpin,
impl<L> UnwindSafe for Walk<L>where
Vec<<L as Lang>::Id>: UnwindSafe,
HashMap<<L as Lang>::Id, (<L as Lang>::Id, usize), BuildHasherDefault<IdHasher>>: UnwindSafe,
<L as Lang>::Id: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more