# Changelog

<details>

<summary>v2.0 (PHP 8)</summary>

* PHP 8.1 is required
* Only inner objects of AbstractEncapsulation will be deep-cloned
* Change return type of Container::search to `string|int|false`
* Fixed typos in documentation

</details>

<details>

<summary>v1.2.2</summary>

* Fix: Type of previous exception parameter

</details>

<details>

<summary>v1.2.1</summary>

* Add more documentation
* Add IteratorTrait
* Add JsonSerializableTrait
* Fix: ImmutableContainer was mutable via splice()-method
* Fix: Immutable encapsulations were not clonable
* Fix: IntersectionCalculation::getDifference was intended to be static

</details>

<details>

<summary>v1.2 (Immutable Encapsulations)</summary>

* Add immutable encapsulations
* `AbstractEncapsulation::add` can now add values to an inner container

</details>

<details>

<summary>v1.1.1</summary>

* Fix: Object difference with missing field

</details>

<details>

<summary>v1.1 (Intersection Calculation)</summary>

* Encapsulations now need to implement the abstract constructor from `AbstractEncapsulation`
* Add intersection calculation for encapsulations&#x20;
* `ObjectMapping` can no longer be created via constructor
* Objects created from encapsulations like `Container` will be created via `static` instead of `self`

</details>

<details>

<summary>v1.0 (First release)</summary>

* First release
* Create encapsulation package

</details>
