package Entities.Items.Keen4 is
pragma Elaborate_Body;
private
type Blue_Gem is new Item with null record;
procedure Construct( this : access Blue_Gem );
procedure Give_Item( this : access Blue_Gem );
function Object_Input( stream : access Root_Stream_Type'Class ) return Blue_Gem;
for Blue_Gem'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Blue_Gem );
for Blue_Gem'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Blue_Gem );
for Blue_Gem'Write use Object_Write;
type Candybar is new Item with null record;
procedure Construct( this : access Candybar );
procedure Give_Item( this : access Candybar );
function Object_Input( stream : access Root_Stream_Type'Class ) return Candybar;
for Candybar'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Candybar );
for Candybar'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Candybar );
for Candybar'Write use Object_Write;
type Donut is new Item with null record;
procedure Construct( this : access Donut );
procedure Give_Item( this : access Donut );
function Object_Input( stream : access Root_Stream_Type'Class ) return Donut;
for Donut'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Donut );
for Donut'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Donut );
for Donut'Write use Object_Write;
type Drop is new Item with null record;
procedure Construct( this : access Drop );
procedure Give_Item( this : access Drop );
function Object_Input( stream : access Root_Stream_Type'Class ) return Drop;
for Drop'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Drop );
for Drop'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Drop );
for Drop'Write use Object_Write;
type Flask is new Item with null record;
procedure Construct( this : access Flask );
procedure Give_Item( this : access Flask );
function Object_Input( stream : access Root_Stream_Type'Class ) return Flask;
for Flask'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Flask );
for Flask'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Flask );
for Flask'Write use Object_Write;
type Green_Gem is new Item with null record;
procedure Construct( this : access Green_Gem );
procedure Give_Item( this : access Green_Gem );
function Object_Input( stream : access Root_Stream_Type'Class ) return Green_Gem;
for Green_Gem'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Green_Gem );
for Green_Gem'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Green_Gem );
for Green_Gem'Write use Object_Write;
type Gum is new Item with null record;
procedure Construct( this : access Gum );
procedure Give_Item( this : access Gum );
function Object_Input( stream : access Root_Stream_Type'Class ) return Gum;
for Gum'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Gum );
for Gum'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Gum );
for Gum'Write use Object_Write;
type Icecream is new Item with null record;
procedure Construct( this : access Icecream );
procedure Give_Item( this : access Icecream );
function Object_Input( stream : access Root_Stream_Type'Class ) return Icecream;
for Icecream'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Icecream );
for Icecream'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Icecream );
for Icecream'Write use Object_Write;
type Jawbreaker is new Item with null record;
procedure Construct( this : access Jawbreaker );
procedure Give_Item( this : access Jawbreaker );
function Object_Input( stream : access Root_Stream_Type'Class ) return Jawbreaker;
for Jawbreaker'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Jawbreaker );
for Jawbreaker'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Jawbreaker );
for Jawbreaker'Write use Object_Write;
type Red_Gem is new Item with null record;
procedure Construct( this : access Red_Gem );
procedure Give_Item( this : access Red_Gem );
function Object_Input( stream : access Root_Stream_Type'Class ) return Red_Gem;
for Red_Gem'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Red_Gem );
for Red_Gem'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Red_Gem );
for Red_Gem'Write use Object_Write;
type Soda is new Item with null record;
procedure Construct( this : access Soda );
procedure Give_Item( this : access Soda );
function Object_Input( stream : access Root_Stream_Type'Class ) return Soda;
for Soda'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Soda );
for Soda'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Soda );
for Soda'Write use Object_Write;
type Stunner is new Item with null record;
procedure Construct( this : access Stunner );
procedure Give_Item( this : access Stunner );
function Object_Input( stream : access Root_Stream_Type'Class ) return Stunner;
for Stunner'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Stunner );
for Stunner'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Stunner );
for Stunner'Write use Object_Write;
type Yellow_Gem is new Item with null record;
procedure Construct( this : access Yellow_Gem );
procedure Give_Item( this : access Yellow_Gem );
function Object_Input( stream : access Root_Stream_Type'Class ) return Yellow_Gem;
for Yellow_Gem'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Yellow_Gem );
for Yellow_Gem'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Yellow_Gem );
for Yellow_Gem'Write use Object_Write;
end Entities.Items.Keen4;