indexing
	description: "Sets of compactly coded date-time pairs"
	date: "$Date$"
	revision: "$Revision$"

class interface
	DATE_TIME_SET

create 

	make (n: INTEGER)
			-- Create set for n date-time pairs.
		require
			positive: n > 0

feature -- Access

	item (i: INTEGER): DATE_TIME
			-- Item at index i
		require
			index_in_range: 1 <= i and i <= last

	last: INTEGER
			-- Index of the last item inserted
	
feature -- Element change

	put (dt: DATE_TIME)
			-- insert dt as last item.
		require
			exists: dt /= void
		ensure
			inserted_date: equal (date_set.item (last), dt.date)
			inserted_time: equal (time_set.item (last), dt.time)
	
feature -- Initalization

	make (n: INTEGER)
			-- Create set for n date-time pairs.
		require
			positive: n > 0
	
invariant

	last_non_negative: last >= 0
	last1: last = date_set.last
	last2: last = time_set.last
		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class DATE_TIME_SET