1<?php
2
3/**
4 * This file is part of the Nette Framework (https://nette.org)
5 * Copyright (c) 2004 David Grudl (https://davidgrudl.com)
6 */
7
8declare(strict_types=1);
9
10namespace Nette\Iterators;
11
12
13
14/**
15 * Applies the callback to the elements of the inner iterator.
16 */
17class Mapper extends \IteratorIterator
18{
19	/** @var callable */
20	private $callback;
21
22
23	public function __construct(\Traversable $iterator, callable $callback)
24	{
25		parent::__construct($iterator);
26		$this->callback = $callback;
27	}
28
29
30	public function current(): mixed
31	{
32		return ($this->callback)(parent::current(), parent::key());
33	}
34}
35