1 ------------------------------------------------------------------------------
3 -- GNAT LIBRARY COMPONENTS --
5 -- ADA.CONTAINERS.RED_BLACK_TREES.GENERIC_OPERATIONS --
9 -- This specification is adapted from the Ada Reference Manual for use with --
10 -- GNAT. In accordance with the copyright of that document, you can freely --
11 -- copy and modify this specification, provided that if you redistribute a --
12 -- modified version, any changes that you have made are clearly indicated. --
14 ------------------------------------------------------------------------------
17 with package Tree_Types is new Generic_Tree_Types (<>);
20 Null_Node : Node_Access;
22 with function Parent (Node : Node_Access) return Node_Access is <>;
23 with procedure Set_Parent (Node : Node_Access; Parent : Node_Access) is <>;
24 with function Left (Node : Node_Access) return Node_Access is <>;
25 with procedure Set_Left (Node : Node_Access; Left : Node_Access) is <>;
26 with function Right (Node : Node_Access) return Node_Access is <>;
27 with procedure Set_Right (Node : Node_Access; Right : Node_Access) is <>;
28 with function Color (Node : Node_Access) return Color_Type is <>;
29 with procedure Set_Color (Node : Node_Access; Color : Color_Type) is <>;
31 package Ada.Containers.Red_Black_Trees.Generic_Operations is
34 function Min (Node : Node_Access) return Node_Access;
36 function Max (Node : Node_Access) return Node_Access;
38 procedure Check_Invariant (Tree : Tree_Type);
40 function Next (Node : Node_Access) return Node_Access;
42 function Previous (Node : Node_Access) return Node_Access;
44 procedure Move (Target, Source : in out Tree_Type);
47 with function Is_Equal (L, R : Node_Access) return Boolean;
48 function Generic_Equal (Left, Right : Tree_Type) return Boolean;
50 procedure Delete_Node_Sans_Free
51 (Tree : in out Tree_Type;
55 with procedure Process (Node : Node_Access) is <>;
56 procedure Generic_Iteration (Tree : Tree_Type);
59 with procedure Process (Node : Node_Access) is <>;
60 procedure Generic_Reverse_Iteration (Tree : Tree_Type);
63 with function New_Node return Node_Access is <>;
64 procedure Generic_Read (Tree : in out Tree_Type; N : Count_Type);
66 procedure Rebalance_For_Insert
67 (Tree : in out Tree_Type;
70 end Ada.Containers.Red_Black_Trees.Generic_Operations;