v2.3.1 - 21 Dec 2016

Bugfix release

Changes:

#82 EnumSet::setBinaryBitset*(): fixed logic of 'truncate out-of-range bits of last byte'


v2.3.0 - 19 Dec 2016
Feature release of the 2.x branch.

(No changes since 2.3.0-rc1)

New:

    #63: EnumSet: support for Little- and Big-Endian binary bitsets
        Added EnumSet::getBinaryBitsetLe() : string
        Added EnumSet::setBinaryBitsetLe(string $bitset)
        Added EnumSet::getBinaryBitsetBe() : string
        Added EnumSet::setBinaryBitsetBe(string $bitset)
    #64: EnumSet: added isEqual(), isSubset() and isSuperset()
        Added EnumSet::isEqual(EnumSet $other) : bool
        Added EnumSet::isSubset(EnumSet $other) : bool
        Added EnumSet::isSuperset(EnumSet $other) : bool
    #66: EnumSet: added methods union(), intersect(), diff() and symDiff()
        Added EnumSet::union(EnumSet ...$others) : EnumSet
        Added EnumSet::intersect(EnumSet ...$others) : EnumSet
        Added EnumSet::diff(EnumSet ...$others) : EnumSet
        Added EnumSet::symDiff(EnumSet ...$others) : EnumSet
    #65: EnumSet: added getEnumerators(), getNames() and getValues()
        Added EnumSet::getEnumerators() : Enum[]
        Added EnumSet::getValues() : mixed[]
        Added EnumSet::getNames() : string[]
    #78: Added static Enum::getValues(), Enum::getNames() and Enum::getOrdinals()
        Added Enum::getValues() : mixed[]
        Added Enum::getNames() : string[]
        Added Enum::getOrdinals() : int[]
    #80: refactored Enum::getBy* to Enum::by*
        Renamed Enum::getByName() -> Enum::byName()
        Renamed Enum::getByOrdinal() -> Enum::byName()
        Added Enum::byValue()
    #59: handle class constant visibility added in PHP-7.1
    #67: optimized EnumSet::count() by 30% to 240%
    #75: optimized EnumSet by using EnumSet properties directly instead of getter methods

##Fixed:

    #71: EnumSet::setBinaryBitset*(): out-of-range bits of last byte not truncated
    #77: Missing additional check on Enum::is() to return TRUE in some circumstances

Deprecations:

    #63 :EnumSet::getBitset() : string
    #63: EnumSet::setBitset(string $bitset)
    #79: Enum::clear()
    #80: Enum::getByName()
    #80: Enum::getByOrdinal()


v2.3.0-rc1 - 7 Dec 2016

New:

    #63: EnumSet: support for Little- and Big-Endian binary bitsets
        Added EnumSet::getBinaryBitsetLe() : string
        Added EnumSet::setBinaryBitsetLe(string $bitset)
        Added EnumSet::getBinaryBitsetBe() : string
        Added EnumSet::setBinaryBitsetBe(string $bitset)
    #64: EnumSet: added isEqual(), isSubset() and isSuperset()
        Added EnumSet::isEqual(EnumSet $other) : bool
        Added EnumSet::isSubset(EnumSet $other) : bool
        Added EnumSet::isSuperset(EnumSet $other) : bool
    #66: EnumSet: added methods union(), intersect(), diff() and symDiff()
        Added EnumSet::union(EnumSet ...$others) : EnumSet
        Added EnumSet::intersect(EnumSet ...$others) : EnumSet
        Added EnumSet::diff(EnumSet ...$others) : EnumSet
        Added EnumSet::symDiff(EnumSet ...$others) : EnumSet
    #65: EnumSet: added getEnumerators(), getNames() and getValues()
        Added EnumSet::getEnumerators() : Enum[]
        Added EnumSet::getValues() : mixed[]
        Added EnumSet::getNames() : string[]
    #78: Added static Enum::getValues(), Enum::getNames() and Enum::getOrdinals()
        Added Enum::getValues() : mixed[]
        Added Enum::getNames() : string[]
        Added Enum::getOrdinals() : int[]
    #80: refactored Enum::getBy* to Enum::by*
        Renamed Enum::getByName() -> Enum::byName()
        Renamed Enum::getByOrdinal() -> Enum::byName()
        Added Enum::byValue()
    #59: handle class constant visibility added in PHP-7.1
    #67: optimized EnumSet::count() by 30% to 240%
    #75: optimized EnumSet by using EnumSet properties directly instead of getter methods

##Fixed:

    #71: EnumSet::setBinaryBitset*(): out-of-range bits of last byte not truncated
    #77: Missing additional check on Enum::is() to return TRUE in some circumstances

Deprecations:

    #63 :EnumSet::getBitset() : string
    #63: EnumSet::setBitset(string $bitset)
    #79: Enum::clear()
    #80: Enum::getByName()
    #80: Enum::getByOrdinal()


v2.2.1 - 6 Sep 2016

Bugfix release

Changes:

#60 Infinitive loop on counting an empty set based on an empty enumeration


v2.2.0 - 4 Oct 2015

Feature release of the 2.x branch.

Changes:

    #53 Added new method Enum::has()


v1.3.0 - 4 Oct 2015

Feature release of the 1.x branch.

Changes:

    #54 Added new method Enum::has()


v2.1.0 - 22 Jun 2015

Feature release of the 2.x branch.

Changes:

    #52 added EnumSerializableTrait for making enumerations serializable
    #51 EnumSet: dynamic bitset size - no longer limited to 32/64 enumerators
    #51 EnumSet: added methods [get|set]Bitset


v2.0.0 - 24 Feb 2015

Changes:

    Inherited enumerations will be handled as own enumeration types
    EnumSet is based on a real bitset now
    Removed unnecessary source folder for PSR-4 autloading
    Added Enum::getEnumerators()

BC-breaks:

    EnumSet: Max. possible enumerators are limited by the size of an integer (32 or 64)
    Enum::is() no longer returns TRUE on inherited enumerations


v2.0.0-beta1 - 9 Feb 2015

Changes:

* Inherited enumerations will be handled as own enumeration types
* EnumSet is based on a real bitset now
* Removed unnecessary source folder for PSR-4 autloading
* Added Enum::getEnumerators() 

BC-breaks:

* EnumSet: Max. possible enumerators are limited by the size of an integer (32 or 64)
* Enum::is() no longer returns TRUE on inherited enumerations


v1.2.0 - 22 May 2014


v1.1.0 - 3 Apr 2014

This is a feature and bugfix release


v1.0.0 - 15 Oct 2013

Changes since 1.0.0-beta2:

    Enumeration values will be compared using strict comparison
    __toString() returns the name by default and is no longer final


v1.0.0-beta2 - 23 Sep 2013

Changes:

    PHP 5.3 will be required
    Moved to namespaces
    BC break how to instantiate a new enumeration (please read usage information)
    It's no longer possible to define a default value
        You can define a method to instantiate it like UserStatus::getDefault()
    Now instances of the same enumeration holds the same instance (singleton)
    Now getConstants() is static

New Features:

    Implemented EnumMap
    Implemented EnumSet
    Added ordinal information and make it possible to instantiate it from


v1.0.0-beta1 - 14 Oct 2013

First beta
