# 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.

## 1.5.1 - 2021-09-12

### Added

- Sponshorship link to
`mix.exs`

### Fixed

`inspect/2`

no longer renders certain sets as charlists.

## 1.5.0 - 2020-10-10

### Changed

`IntSet.bitstring/1`

is now`IntSet.bitstring/2`

and now accepts an option:`:byte_align`

. When this option is set to`true`

, the bitstring is padded at the end to make it byte-aligned.

## 1.4.2 - 2019-11-24

### Fixed

`IntSet.inverse/2`

is now totally fixed.

## 1.4.1 - 2019-11-24

### Fixed

- Some problems with
`IntSet.inverse/2`

and padding were fixed.

## 1.4.0 - 2019-11-24

### 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

### 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

### Added

`IntSet.difference/2`

now has a typespec.`IntSet.disjoint?/2`

now has docs and a typespec.

### Changed

`IntSet.union/2`

has been optimized

## 1.2.0 - 2018-02-06

### Added

- The
`IntSet.difference/2`

function. This function subtracts set B's members from set A. - The
`IntSet.disjoint?/2`

function. Returns`true`

if sets A and B have no members in common.

### Changed

- The
`Collectable`

implementation was dramatically optimized.

## 1.1.0 - 2018-02-03

### 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. Calling`IntSet.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

### 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 like`MapSet.put/2`

, this function returns a new set with the given value added. - The
`IntSet.delete/2`

function. Again, just like`MapSet.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`

.