// Copyright 2018-2026 the Deno authors. MIT license. // This module is browser compatible. import { BinarySearchNode, type Direction } from "./_binary_search_node.ts"; export type { Direction }; export class RedBlackNode extends BinarySearchNode { declare parent: RedBlackNode | null; declare left: RedBlackNode | null; declare right: RedBlackNode | null; red: boolean; constructor(parent: RedBlackNode | null, value: T) { super(parent, value); this.red = true; } static override from(node: RedBlackNode): RedBlackNode { const copy: RedBlackNode = new RedBlackNode(node.parent, node.value); copy.left = node.left; copy.right = node.right; copy.red = node.red; return copy; } }