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]
added
Added
changed
Changed
deprecated
Deprecated
removed
Removed
fixed
Fixed
security
Security
v0-3-2-2022-11-22
[v0.3.2] - 2022-11-22
added-1
Added
changed-1
Changed
deprecated-1
Deprecated
removed-1
Removed
fixed-1
Fixed
- Issue #19. Could not compile when the dependant project did not have Ecto included, which was a bug.
security-1
Security
v0-3-1-2022-11-21
[v0.3.1] - 2022-11-21
added-2
Added
- Added type and typespecs for builtin types.
- Added additional documentation in
Interval
changed-2
Changed
deprecated-2
Deprecated
removed-2
Removed
fixed-2
Fixed
security-2
Security
v0-3-0-2022-11-21
[v0.3.0] - 2022-11-21
added-3
Added
- Mostly automatic support
Ecto.Type
(including for builtin interval types) left/1
andright/1
to extract the left and right values from the interval.- Builtin
Jason.Encoder
support. Interval.__using__
optionjason_encoder
for including encoder. Defaults totrue
.Interval.to_map/1
to convert an Interval struct to a map suitible for JSON and similar serialization.Interval.Decimal
forDecimal
support.
changed-3
Changed
Interval.__using__
optiondiscrete
is now optional, and defaults tofalse
deprecated-3
Deprecated
removed-3
Removed
fixed-3
Fixed
security-3
Security
v0-2-0-2022-10-27
[v0.2.0] - 2022-10-27
added-4
Added
- Allow opting out of built in implementations by configuring
:interval, Interval.Float: false
- Adding
Interval.Intervalable
protocol, which allows you to define what interval implementation to use for value types. This is purely for ergonomic reasons. - Special-case for empty intervals, which doesn't require implementation-specific behaviour.
- Adding
Interval.contains_point?/2
- Adding
Interval.partition/2
- Adding
Interval.size/1
changed-4
Changed
- Various
RuntimeError
s handling bad input to a function has been converted toArgumentError
s Point.previous(a)
andPoint.next(a)
becamepoint_step/2
in theInterval.Behaviour
.Interval.new/1
now requires a:module
option of the specific implementation to use, however the implementation has anew/1
that infers this when creating new intervals.
removed-4
Removed
- The idea of a "zero" point was removed because it doesn't make sense for all intervals.
- Removed the
Interval.Point
protocol in favor of a behaviour for the entire interval. - Removed
Interval.size/2
v0-1-3-2022-10-12
[v0.1.3] - 2022-10-12
added-5
Added
- Added
Interval.size/2
. - Added parameterized typespec
Interval.t/1
changed-5
Changed
- The internal
Endpoint
struct has been replaced by a simple 2-tuple. - Empty intervals are now represented by two identical exclusive points.
fixed-4
Fixed
- Fixed a bug in
Interval.intersection/2
andInterval.union/2
that causes incorrect bounds in some cases.
v0-1-2-2022-10-10
[v0.1.2] - 2022-10-10
fixed-5
Fixed
- Fixed a correctness bug in intersection, where intersections between intervals containing unbounded endpoints would be incorrectly computed.