} */ private $collate_key; /** * @var struct_subject_map */ private $subject; /** * @param struct_subject_map */ public function __construct( \Closure $collate_key, struct_subject_map $subject ) { $this->collate_key = $collate_key; $this->subject = $subject; } /** * @param array $pairs {list<&struct_subject_pair<§type_key,§type_value>>} */ public static function make( \Closure $collate_key, array $pairs = [] ) : class_map { return (new class_map($collate_key, map_make($pairs))); } public function get($key) {return map_get($this->collate_key, $this->subject, $key);} public function set($key, $value) : void {map_set($this->collate_key, $this->subject, $key, $value);} public function iterate(\Closure $procedure) : void {map_iterate($this->subject, $procedure);} } ?>