@@ -117,36 +117,39 @@ module stdlib_hashmaps
117117 procedure (rehash_map), deferred, pass(map) :: rehash
118118 procedure (total_depth), deferred, pass(map) :: total_depth
119119
120- ! ! Generic interfaces for key types .
120+ ! ! Key_test procedures .
121121 procedure (key_key_test), deferred, pass(map) :: key_key_test
122122 procedure , non_overridable, pass(map) :: int8_key_test
123123 procedure , non_overridable, pass(map) :: int32_key_test
124124 procedure , non_overridable, pass(map) :: char_key_test
125+ generic, public :: key_test = > key_key_test, int8_key_test, int32_key_test, char_key_test
125126
127+ ! Map_entry procedures
126128 procedure (key_map_entry), deferred, pass(map) :: key_map_entry
127129 procedure , non_overridable, pass(map) :: int8_map_entry
128130 procedure , non_overridable, pass(map) :: int32_map_entry
129131 procedure , non_overridable, pass(map) :: char_map_entry
132+ generic, public :: map_entry = > key_map_entry, int8_map_entry, int32_map_entry, char_map_entry
130133
134+ ! Get_other_data procedures
131135 procedure (key_get_other_data), deferred, pass(map) :: key_get_other_data
132136 procedure , non_overridable, pass(map) :: int8_get_other_data
133137 procedure , non_overridable, pass(map) :: int32_get_other_data
134138 procedure , non_overridable, pass(map) :: char_get_other_data
139+ generic, public :: get_other_data = > key_get_other_data, int8_get_other_data, int32_get_other_data, char_get_other_data
135140
141+ ! Key_remove_entry procedures
136142 procedure (key_remove_entry), deferred, pass(map) :: key_remove_entry
137143 procedure , non_overridable, pass(map) :: int8_remove_entry
138144 procedure , non_overridable, pass(map) :: int32_remove_entry
139145 procedure , non_overridable, pass(map) :: char_remove_entry
146+ generic, public :: remove = > key_remove_entry, int8_remove_entry, int32_remove_entry, char_remove_entry
140147
148+ ! Set_other_data procedures
141149 procedure (key_set_other_data), deferred, pass(map) :: key_set_other_data
142150 procedure , non_overridable, pass(map) :: int8_set_other_data
143151 procedure , non_overridable, pass(map) :: int32_set_other_data
144152 procedure , non_overridable, pass(map) :: char_set_other_data
145-
146- generic, public :: key_test = > key_key_test, int8_key_test, int32_key_test, char_key_test
147- generic, public :: map_entry = > key_map_entry, int8_map_entry, int32_map_entry, char_map_entry
148- generic, public :: get_other_data = > key_get_other_data, int8_get_other_data, int32_get_other_data, char_get_other_data
149- generic, public :: remove = > key_remove_entry, int8_remove_entry, int32_remove_entry, char_remove_entry
150153 generic, public :: set_other_data = > key_set_other_data, int8_set_other_data, int32_set_other_data, char_set_other_data
151154
152155 end type hashmap_type
0 commit comments