Useful PHP utilities (Collections, Iterators, etc)
use Gamee\Collections\Collection\UniqueObjectCollection;
/**
 * @extends UniqueObjectCollection<UserData>
 */
final class UserDataCollection extends UniqueObjectCollection
{
	/**
	 * @param UserData $item
	 * @return string|int
	 */
	protected function getIdentifier(object $item)
	{
		return $item->getId();
	}
}use Gamee\Collections\Iterator\ObjectIterator;
class UserCredentialsDataIterator extends ObjectIterator
{
	public function current(): UserCredentialsData
	{
		return parent::current();
	}
}use Gamee\Collections\Collection\ImmutableObjectCollection;
final class UserDataCollection extends ImmutableObjectCollection
{
	protected function getItemType(): string
	{
		return UserData::class;
	}
	public function current(): UserData
	{
		return parent::current();
	}
}