View Source Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
unreleased
Unreleased
2-0-0-2023-03-29
2.0.0 - 2023-03-29
changed
Changed
- Inspecting an IntSet now returns a string using
IntString.new([1, 2, 3, ...])
syntax. - The internal binary that IntSet uses to store values is now always byte-aligned, and each byte has changed endianness to allow for some internal optimizations.
- Binaries returned by
IntSet.bitstring/1
is now always byte-aligned.
removed
Removed
- BREAKING: The
byte_align
option forIntSet.bitstring/1
was removed.
1-5-2-2022-09-05
1.5.2 - 2022-09-05
added
Added
- Copyright headers are now on all files, following the REUSE Specification.
changed-1
Changed
- Fixes for Elixir 1.14 deprecations
- The project now uses Earthly for CI.
You can run the entire CI pipeline on your local machine by installing Earthly and running
earthly +all
.
1-5-1-2021-09-12
1.5.1 - 2021-09-12
added-1
Added
- Sponshorship link to
mix.exs
fixed
Fixed
inspect/2
no longer renders certain sets as charlists.
1-5-0-2020-10-10
1.5.0 - 2020-10-10
changed-2
Changed
IntSet.bitstring/1
is nowIntSet.bitstring/2
and now accepts an option::byte_align
. When this option is set totrue
, the bitstring is padded at the end to make it byte-aligned.
1-4-2-2019-11-24
1.4.2 - 2019-11-24
fixed-1
Fixed
IntSet.inverse/2
is now totally fixed.
1-4-1-2019-11-24
1.4.1 - 2019-11-24
fixed-2
Fixed
- Some problems with
IntSet.inverse/2
and padding were fixed.
1-4-0-2019-11-24
1.4.0 - 2019-11-24
added-2
Added
- The
IntSet.inverse/2
function, which is like taking the difference of your IntSet with a completely-full IntSet with n members. Say you have a list of indices, and you want to create a list of all the indices you don't have. Just take the inverse, providing a member limit. - Added an
.editorconfig
file to the project.
1-3-0-2018-05-25
1.3.0 - 2018-05-25
added-3
Added
- The
IntSet.equal?/2
function. It does exactly what you think. - The
IntSet.intersection/2
function. Returns the elements that are in both sets.
1-2-1-2018-02-09
1.2.1 - 2018-02-09
added-4
Added
IntSet.difference/2
now has a typespec.IntSet.disjoint?/2
now has docs and a typespec.
changed-3
Changed
IntSet.union/2
has been optimized
1-2-0-2018-02-06
1.2.0 - 2018-02-06
added-5
Added
- The
IntSet.difference/2
function. This function subtracts set B's members from set A. - The
IntSet.disjoint?/2
function. Returnstrue
if sets A and B have no members in common.
changed-4
Changed
- The
Collectable
implementation was dramatically optimized.
1-1-0-2018-02-03
1.1.0 - 2018-02-03
added-6
Added
- The
IntSet.bitstring/1
function. Returns a binary with bits flipped at the indices at which the set has members. For example, say you have a set containing 0, 1, and 4. CallingIntSet.bitstring/1
on that set will return a five-bit-long binary with the first, second, and fifth bits set to 1, and the rest are 0. - The library is now typespecced and documented.
1-0-0-2018-02-01
1.0.0 - 2018-02-01
added-7
Added
- Constructor
IntSet.new/0
, which creates a new empty set. - Constructor
IntSet.new/1
, which accepts either an enumerable and returns a set containing those elements. This constructor also accepts a bitstring. See the documentation for details on that behavior. - The
IntSet.put/2
function. Just likeMapSet.put/2
, this function returns a new set with the given value added. - The
IntSet.delete/2
function. Again, just likeMapSet.delete/2
. Returns a new set with the given value removed. - The
IntSet.union/2
function. Returns a set that contains elements of both given sets. - An implementation of
Inspect
that sorts members before printing them, so the order can be relied upon in doctests. - An implementation of
Collectable
. - An implementation of
Enumerable
.