| ------------------------------------------------------------------------------ |
| -- -- |
| -- GNAT LIBRARY COMPONENTS -- |
| -- -- |
| -- A D A . C O N T A I N E R S . R E D _ B L A C K _ T R E E S . -- |
| -- G E N E R I C _ K E Y S -- |
| -- -- |
| -- S p e c -- |
| -- -- |
| -- This specification is adapted from the Ada Reference Manual for use with -- |
| -- GNAT. In accordance with the copyright of that document, you can freely -- |
| -- copy and modify this specification, provided that if you redistribute a -- |
| -- modified version, any changes that you have made are clearly indicated. -- |
| -- -- |
| ------------------------------------------------------------------------------ |
| |
| with Ada.Containers.Red_Black_Trees.Generic_Operations; |
| |
| generic |
| with package Tree_Operations is new Generic_Operations (<>); |
| |
| use Tree_Operations.Tree_Types; |
| |
| type Key_Type (<>) is limited private; |
| |
| with function Is_Less_Key_Node |
| (L : Key_Type; |
| R : Node_Access) return Boolean; |
| |
| with function Is_Greater_Key_Node |
| (L : Key_Type; |
| R : Node_Access) return Boolean; |
| |
| package Ada.Containers.Red_Black_Trees.Generic_Keys is |
| pragma Pure; |
| |
| generic |
| with function New_Node return Node_Access; |
| procedure Generic_Insert_Post |
| (Tree : in out Tree_Type; |
| X, Y : Node_Access; |
| Key : Key_Type; |
| Z : out Node_Access); |
| |
| generic |
| with procedure Insert_Post |
| (Tree : in out Tree_Type; |
| X, Y : Node_Access; |
| Key : Key_Type; |
| Z : out Node_Access); |
| |
| procedure Generic_Conditional_Insert |
| (Tree : in out Tree_Type; |
| Key : Key_Type; |
| Node : out Node_Access; |
| Success : out Boolean); |
| |
| generic |
| with procedure Insert_Post |
| (Tree : in out Tree_Type; |
| X, Y : Node_Access; |
| Key : Key_Type; |
| Z : out Node_Access); |
| |
| procedure Generic_Unconditional_Insert |
| (Tree : in out Tree_Type; |
| Key : Key_Type; |
| Node : out Node_Access); |
| |
| generic |
| with procedure Insert_Post |
| (Tree : in out Tree_Type; |
| X, Y : Node_Access; |
| Key : Key_Type; |
| Z : out Node_Access); |
| |
| with procedure Unconditional_Insert_Sans_Hint |
| (Tree : in out Tree_Type; |
| Key : Key_Type; |
| Node : out Node_Access); |
| |
| procedure Generic_Unconditional_Insert_With_Hint |
| (Tree : in out Tree_Type; |
| Hint : Node_Access; |
| Key : Key_Type; |
| Node : out Node_Access); |
| |
| generic |
| with procedure Insert_Post |
| (Tree : in out Tree_Type; |
| X, Y : Node_Access; |
| Key : Key_Type; |
| Z : out Node_Access); |
| |
| with procedure Conditional_Insert_Sans_Hint |
| (Tree : in out Tree_Type; |
| Key : Key_Type; |
| Node : out Node_Access; |
| Success : out Boolean); |
| |
| procedure Generic_Conditional_Insert_With_Hint |
| (Tree : in out Tree_Type; |
| Position : Node_Access; |
| Key : Key_Type; |
| Node : out Node_Access; |
| Success : out Boolean); |
| |
| function Find |
| (Tree : Tree_Type; |
| Key : Key_Type) return Node_Access; |
| |
| function Ceiling |
| (Tree : Tree_Type; |
| Key : Key_Type) return Node_Access; |
| |
| function Floor |
| (Tree : Tree_Type; |
| Key : Key_Type) return Node_Access; |
| |
| function Upper_Bound |
| (Tree : Tree_Type; |
| Key : Key_Type) return Node_Access; |
| |
| generic |
| with procedure Process (Node : Node_Access); |
| procedure Generic_Iteration |
| (Tree : Tree_Type; |
| Key : Key_Type); |
| |
| generic |
| with procedure Process (Node : Node_Access); |
| procedure Generic_Reverse_Iteration |
| (Tree : Tree_Type; |
| Key : Key_Type); |
| |
| end Ada.Containers.Red_Black_Trees.Generic_Keys; |