internal static void HandleRootSplit <K, T>(this IAListTreeObserver <K, T> self, AListNode <K, T> oldRoot, AListNode <K, T> newLeft, AListNode <K, T> newRight, AListInnerBase <K, T> newRoot) { self.HandleNodeReplaced(oldRoot, newLeft, newRight); self.NodeAdded(newLeft, newRoot); self.NodeAdded(newRight, newRoot); self.RootChanged(newRoot, false); }
internal static void HandleChildReplaced <K, T>(this IAListTreeObserver <K, T> self, AListNode <K, T> oldNode, AListNode <K, T> newLeft, AListNode <K, T> newRight, AListInnerBase <K, T> parent) { self.HandleNodeReplaced(oldNode, newLeft, newRight); if (parent != null) { self.NodeRemoved(oldNode, parent); self.NodeAdded(newLeft, parent); if (newRight != null) { self.NodeAdded(newRight, parent); } } }