From f4bb7bcbff3770387c2fecfa91ce4a60b916a474 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 27 Nov 2020 08:04:00 +0000 Subject: update composer libs --- vendor/ramsey/collection/src/AbstractSet.php | 64 ++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 vendor/ramsey/collection/src/AbstractSet.php (limited to 'vendor/ramsey/collection/src/AbstractSet.php') diff --git a/vendor/ramsey/collection/src/AbstractSet.php b/vendor/ramsey/collection/src/AbstractSet.php new file mode 100644 index 000000000..674fda03d --- /dev/null +++ b/vendor/ramsey/collection/src/AbstractSet.php @@ -0,0 +1,64 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection; + +use Ramsey\Collection\Exception\InvalidArgumentException; + +/** + * This class contains the basic implementation of a collection that does not + * allow duplicated values (a set), to minimize the effort required to implement + * this specific type of collection. + */ +abstract class AbstractSet extends AbstractCollection +{ + /** + * Adds the specified element to this set, if it is not already present. + * + * @param mixed $element The element to add to the set. + * + * @return bool `true` if this set did not already contain the specified + * element. + * + * @throws InvalidArgumentException when the element does not match the + * specified type for this set. + */ + public function add($element): bool + { + if ($this->contains($element)) { + return false; + } + + return parent::add($element); + } + + /** + * Sets the given value to the given offset in this set, if it is not + * already present. + * + * @param mixed|null $offset The offset is ignored and is treated as `null`. + * @param mixed $value The value to set at the given offset. + * + * @throws InvalidArgumentException when the value does not match the + * specified type for this set. + */ + public function offsetSet($offset, $value): void + { + if ($this->contains($value)) { + return; + } + + parent::offsetSet($offset, $value); + } +} -- cgit v1.2.3