summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ada-containers-directed_graphs.ads69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/ada-containers-directed_graphs.ads b/src/ada-containers-directed_graphs.ads
new file mode 100644
index 0000000..6d0a2b0
--- /dev/null
+++ b/src/ada-containers-directed_graphs.ads
@@ -0,0 +1,69 @@
+
+
+with
+
+ Ada.Iterator_Interfaces;
+
+private with
+
+ Ada.Containers.Helpers,
+ Ada.Finalization,
+ Ada.Streams;
+ -- maps? sets?
+
+
+generic
+ with Node_Type is (<>);
+ with Node_Array_Type is array (Positive) of Node_Type;
+
+ with Node_Label_Type is private;
+ with Edge_Label_Type is private;
+
+package Ada.Containers.Directed_Graphs is
+
+
+ subtype Extended_Node_Type is Node_Type'Base
+ range Node_Type'First - 1 ..
+ Node_Type'Min (Node_Type'Base'Last - 1, Node_Type'Last) + 1;
+
+ subtype Path is Node_Array_Type;
+
+ type Edge_Type is record
+ From : Node_Type;
+ To : Node_Type;
+ end record;
+
+ type Edge_Array_Type is array (Positive) of Edge_Type;
+
+ type Graph is tagged private;
+
+ type Cursor is private;
+
+
+
+
+ type Node_Label_Constant_Reference_Type
+ (Element : not null access constant Node_Label_Type) is private
+ with
+ Implicit_Dereference => Element;
+
+ type Node_Label_Reference_Type (Element : not null access Node_Label_Type) is private
+ with
+ Implicit_Dereference => Element;
+
+ type Edge_Label_Constant_Reference_Type
+ (Element : not null access constant Edge_Label_Type) is private
+ with
+ Implicit_Dereference => Element;
+
+ type Edge_Label_Reference_Type (Element : not null access Edge_Label_Type) is private
+ with
+ Implicit_Dereference => Element;
+
+
+private
+
+
+end Ada.Containers.Directed_Graphs;
+
+