*/ final class ContributionCollection implements \IteratorAggregate, \Countable { /** @var array */ private readonly array $contributions; public function __construct(Contribution ...$contributions) { $this->contributions = array_values($contributions); } /** @return \ArrayIterator */ public function getIterator(): \ArrayIterator { return new \ArrayIterator($this->contributions); } /** Number of contributions held in this collection. */ public function count(): int { return count($this->contributions); } }