1# Changelog
2
3This project follows semantic versioning.
4
5The MSRV (Minimum Supported Rust Version) is 1.37.0, and typenum is tested
6against this Rust version.
7
8### Unreleased
9
10### 1.14.0 (2021-09-01)
11- [changed] Sealed all marker traits. Documentation already stated that these
12  should not be implemented outside the crate, so this is not considered a
13  breaking change.
14
15### 1.13.0 (2021-03-12)
16- [changed] MSRV from 1.22.0 to 1.37.0.
17- [fixed] `op` macro with 2018 edition import.
18- [changed] Allowed calling `assert_type_eq` and `assert_type` at top level.
19- [added] Marker trait `Zero` for `Z0`, `U0`, and `B0`.
20- [added] Implementation of `Pow` trait for f32 and f64 with negative exponent.
21- [added] Trait `ToInt`.
22
23### 1.12.0 (2020-04-13)
24- [added] Feature `force_unix_path_separator` to support building without Cargo.
25- [added] Greatest common divisor operator `Gcd` with alias `Gcf`.
26- [added] `gcd` to the `op!` macro.
27- [changed] Added `Copy` bound to `Rhs` of `Mul<Rhs>` impl for `<TArr<V, A>`.
28- [changed] Added `Copy` bound to `Rhs` of `Div<Rhs>` impl for `<TArr<V, A>`.
29- [changed] Added `Copy` bound to `Rhs` of `PartialDiv<Rhs>` impl for `<TArr<V, A>`.
30- [changed] Added `Copy` bound to `Rhs` of `Rem<Rhs>` impl for `<TArr<V, A>`.
31- [fixed] Make all functions #[inline].
32
33### 1.11.2 (2019-08-26)
34- [fixed] Cross compilation from Linux to Windows.
35
36### 1.11.1 (2019-08-25)
37- [fixed] Builds on earlier Rust builds again and added Rust 1.22.0 to Travis to
38  prevent future breakage.
39
40### 1.11.0 (2019-08-25)
41- [added] Integer `log2` to the `op!` macro.
42- [added] Integer binary logarithm operator `Logarithm2` with alias `Log2`.
43- [changed] Removed `feature(i128_type)` when running with the `i128`
44  feature. Kept the feature flag.  for typenum to maintain compatibility with
45  old Rust versions.
46- [added] Integer `sqrt` to the `op!` macro.
47- [added] Integer square root operator `SquareRoot` with alias `Sqrt`.
48- [fixed] Bug with attempting to create U1024 type alias twice.
49
50### 1.10.0 (2018-03-11)
51- [added] The `PowerOfTwo` marker trait.
52- [added] Associated constants for `Bit`, `Unsigned`, and `Integer`.
53
54### 1.9.0 (2017-05-14)
55- [added] The `Abs` type operater and corresponding `AbsVal` alias.
56- [added] The feature `i128` that enables creating 128-bit integers from
57  typenums.
58- [added] The `assert_type!` and `assert_type_eq!` macros.
59- [added] Operators to the `op!` macro, including those performed by `cmp!`.
60- [fixed] Bug in `op!` macro involving functions and convoluted expressions.
61- [deprecated] The `cmp!` macro.
62
63### 1.8.0 (2017-04-12)
64- [added] The `op!` macro for conveniently performing type-level operations.
65- [added] The `cmp!` macro for conveniently performing type-level comparisons.
66- [added] Some comparison type-operators that are used by the `cmp!` macro.
67
68### 1.7.0 (2017-03-24)
69- [added] Type operators `Min` and `Max` with accompanying aliases `Minimum` and
70  `Maximum`
71
72### 1.6.0 (2017-02-24)
73- [fixed] Bug in `Array` division.
74- [fixed] Bug where `Rem` would sometimes exit early with the wrong answer.
75- [added] `PartialDiv` operator that performs division as a partial function --
76  it's defined only when there is no remainder.
77
78### 1.5.2 (2017-02-04)
79- [fixed] Bug between `Div` implementation and type system.
80
81### 1.5.1 (2016-11-08)
82- [fixed] Expanded implementation of `Pow` for primitives.
83
84### 1.5.0 (2016-11-03)
85- [added] Functions to the `Pow` and `Len` traits. This is *technically* a
86  breaking change, but it would only break someone's code if they have a custom
87  impl for `Pow`. I would be very surprised if that is anyone other than me.
88
89### 1.4.0 (2016-10-29)
90- [added] Type-level arrays of type-level integers. (PR #66)
91- [added] The types in this crate are now instantiable. (Issue #67, PR #68)
92
93### 1.3.1 (2016-03-31)
94- [fixed] Bug with recent nightlies.
95
96### 1.3.0 (2016-02-07)
97- [changed] Removed dependency on libstd. (Issue #53, PR #55)
98- [changed] Reorganized module structure. (PR #57)
99
100### 1.2.0 (2016-01-03)
101- [added] This change log!
102- [added] Convenience type aliases for operators. (Issue #48, PR #50)
103- [added] Types in this crate now derive all possible traits. (Issue #42, PR
104  #51)
105