/**
  * @param \Iterator $iterator
  * @param callable  $callback
  */
 public function __construct(\Iterator $iterator, $callback)
 {
     parent::__construct($iterator);
     $this->callback = $callback;
 }
 /**
  * @return mixed
  */
 public function current()
 {
     return call_user_func($this->callback, parent::current(), $this->key(), $this);
 }