--
-- Uwe R. Zimmer, Australia, 2013
--
package body Queue_Pack_Contract is
procedure Enqueue (Item : Element; Q : in out Queue_Type) is
begin
Q.Elements (Q.Free) := Item;
Q.Free := Q.Free + 1;
Q.Is_Empty := False;
end Enqueue;
procedure Dequeue (Item : out Element; Q : in out Queue_Type) is
begin
Item := Q.Elements (Q.Top);
Q.Top := Q.Top + 1;
Q.Is_Empty := Q.Top = Q.Free;
end Dequeue;
end Queue_Pack_Contract;