class EL_BOOLEAN_INDEXABLE
Client examples: LIBRARY_MIGRATION_COMMAND_TEST_SET ; MONITORED_PAGE ; OPTION_ECF_LINES ; PLATFORM_FILE_RULE_ECF_LINES ; ZSTRING_TEST_SET
Array that is indexable by a BOOLEAN value
note
	description: "Array that is indexable by a ${BOOLEAN} value"
	author: "Finnian Reilly"
	copyright: "Copyright (c) 2001-2022 Finnian Reilly"
	contact: "finnian at eiffel hyphen loop dot com"
	license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
	date: "2024-08-29 14:42:17 GMT (Thursday 29th August 2024)"
	revision: "8"
		
		class
	EL_BOOLEAN_INDEXABLE [G]
create
	make, make_with_function, make_with_tuple
convert
	make_with_tuple ({TUPLE [G, G]}), make_with_function ({FUNCTION [BOOLEAN, G]})
feature {NONE} -- Initialization
	make_with_tuple (t: TUPLE [false_item, true_item: G])
		do
			make (t.false_item, t.true_item)
		end
	make (false_item, true_item: G)
		do
			create area.make_filled (false_item, 2)
			area [1] := true_item
		end
	make_with_function (true_item: FUNCTION [BOOLEAN, G])
		require
			open_argument: true_item.open_count = 1
		do
			make (true_item (False), true_item (True))
		end
feature -- Access
	first, item_false: G
		-- `item (False)'
		do
			Result := area [0]
		end
	item alias "[]", item_1 alias "#?" (boolean: BOOLEAN): G
		do
			Result := area [boolean.to_integer]
		end
	last, item_true: G
		-- `item (True)'
		do
			Result := area [1]
		end
feature -- Status query
	for_all (test: PREDICATE [G]): BOOLEAN
		do
			Result := area.for_all_in_bounds (test, 0, 1)
		end
feature {NONE} -- Internal attributes
	area: SPECIAL [G]
end