private with Ada.Containers.Doubly_Linked_Lists;
private with Ada.Containers.Indefinite_Vectors;
package WL.Reports.Tables is
type Cell_Alignment is (Left, Center, Right);
type Table_Report is
new Report_Interface with private;
procedure Add_Column
(Report : in out Table_Report'Class;
Heading : String;
Alignment : Cell_Alignment := Left);
procedure Append_Row
(Report : in out Table_Report'Class);
procedure Append_Cell
(Report : in out Table_Report'Class;
Value : String);
private
package String_Vectors is
new Ada.Containers.Indefinite_Vectors (Positive, String);
package Row_Lists is
new Ada.Containers.Doubly_Linked_Lists
(String_Vectors.Vector, String_Vectors."=");
type Table_Report is new Report_Interface with
record
Headings : String_Vectors.Vector;
Rows : Row_Lists.List;
end record;
overriding procedure Iterate_Lines
(Report : Table_Report;
Process : not null access
procedure (Line : String));
end WL.Reports.Tables;