An error occurred while loading the file. Please try again.
-
Pierre-Antoine Rouby authorede4eee1c2
<?php declare(strict_types=1);
/*
* This file is part of "irstea/ng-model-generator-bundle".
*
* "irstea/ng-model-generator-bundle" generates Typescript interfaces for Angular using api-platform metadata.
* Copyright (C) 2018 IRSTEA
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License and the GNU
* Lesser General Public License along with this program. If not, see
* <https://www.gnu.org/licenses/>.
*/
namespace Irstea\NgModelGeneratorBundle\Iterators;
/**
* Trait UniqueIteratorTrait.
*/
trait UniqueIteratorTrait
{
/**
* @var array
*/
private $seen = [];
/**
* @return bool
*/
public function accept()
{
$value = $this->current();
$key = \is_object($value) ? spl_object_hash($value) : (string) $value;
if (isset($this->seen[$key])) {
return false;
}
$this->seen[$key] = true;
return true;
}
/**
* @return mixed
*/
abstract public function current();
}