1# Change Log
2All notable changes to this project will be documented in this file.
3
4The format is based on [Keep a Changelog](http://keepachangelog.com/)
5and this project adheres to [Semantic Versioning](http://semver.org/).
6
7<!-- next-header -->
8## [Unreleased] - ReleaseDate
9
10## [1.0.7] - 2021-01-29
11
12## [1.0.6] - 2020-12-28
13
14### Fixed
15- `NamePredicate` now adds itself to the `Case` returned by `find_case`.
16
17## [1.0.5] - 2020-07-18
18
19### Fixed
20
21- Update float-cmp dependency
22
23## [1.0.4] - 2020-03-04
24### Fixed
25
26- Upgrade normalize-line-endings
27
28## [1.0.3] - 2020-02-25
29
30## [1.0.2] - 2019-11-18
31### Fixed
32- `BooleanPredicate` now implements `Predicate<T>` where `T: ?Sized`
33  ([#84](https://github.com/assert-rs/predicates-rs/pull/84))
34
35## [1.0.1] - 2019-04-22
36### Changed
37- BooleanPredicate is no longer generic, and is always Send and Sync.
38
39## [1.0.0] - 2018-10-06
40
41## [0.9.1] - 2018-10-05
42### Added
43- Created a predicate selection guide.
44
45## [0.9.0] - 2018-07-30
46### Added
47- Support `?Sized` types for `FnPredicate`.
48- Add `str_pred.normalize()` predicate.
49- Add reflection to `Predicate`.
50- Add support for predicates returning why they failed (`find_case`) which can
51  be combined with the new `predicates-tree` crate.
52- Split out `predicates-core` for reducing ecosystem breaking changes.
53
54### Changed
55- Predicates must also implement `PredicateReflection`
56
57## [0.5.2] - 2018-07-20
58### Added
59- **path:**  support file-based str predicates ([4b430532](https://github.com/assert-rs/predicates-rs/commit/4b430532f7cd660bd813863871ede6f108e7be67), closes [#56](https://github.com/assert-rs/predicates-rs/issues/56))
60-   Expand trait coverage ([33972a7d](https://github.com/assert-rs/predicates-rs/commit/33972a7d0c92eb7f7c7e95af4bb35bea0ac810ab))
61
62## [0.5.1] - 2018-06-05
63### Added
64-   Fix eq for str ([7650e9e6](https://github.com/assert-rs/predicates-rs/commit/7650e9e6d43f2ddd047ad8defa0c724b31ebd1c4))
65
66## [0.5.0] - 2018-05-30
67### Added
68- **trait:**
69  -  Allow naming `Predicate` expressions
70- **str:**
71  -  Add regex repetition count, closes #27
72  -  from_utf8 adapter, closes #21
73  -  Trimming predicate decorator
74- **path:**
75  - `eq_file` predicate to test a file-under-test with a fixture, closes #32.
76    - `eq_file(...).utf()` adapter to do string comparisons with the fixture
77  - Add a `from_file_path` extension method to `Predicate<[u8]>` that turns it into a `Predicate<Path>`, closes #31.
78
79### Breaking Changes
80- **trait:**
81  -  All `Predicate`s are now `Display` ([05216708](https://github.com/assert-rs/predicates-rs/commit/05216708359544f2c5f3a256f50c012f521c39a6), breaks [#](https://github.com/assert-rs/predicates-rs/issues/))
82  -  Decouple boxing from trait ([f981fac3](https://github.com/assert-rs/predicates-rs/commit/f981fac39271746162365f3c577cffac730e1d97), breaks [#](https://github.com/assert-rs/predicates-rs/issues/))
83  -  Decouple boolean logic from trait ([88b72f9e](https://github.com/assert-rs/predicates-rs/commit/88b72f9ef58a86f2af68c0510d99326f5e644f76), breaks [#](https://github.com/assert-rs/predicates-rs/issues/))
84
85## [0.4.0] - 2018-05-10
86### Added
87- Define oldest supported version of Rust as 1.22.
88- CI that ensures
89  - works on Windows and Linux
90  - works on 1.22 to nightly
91- **float:** `is_close` Predicate (see #11).
92- **path:**
93  -  File type predicates: `is_file`, `is_dir`, `is_symlink` (see #8).
94  -  Existence predicate: `exists`, `missing` (see #8).
95- **str:**
96  -  Basic string predicates: `is_empty`, `starts_with`, `ends_with`, and `contains` with optional count (see #25).
97  -  Regex predicate (see #12).
98  -  Edit-distance predicate (see #9).
99
100### Changed
101- Clearly delineate API from prelude (see #17).
102- Switch `Predicate` trait from Associated Types to Generics.
103- **iter:**
104  -  Renamed `set` predicates as `iter` predicates to clarify the intent from some implementation.
105  -  Remove ambiguity of predicate factories (see #24):
106    - `contains` -> `in_iter`
107    - `contains_hashable` -> `in_hash`
108  - Turned `contains_ord` into a specialization of `in_iter` by adding a `sort` method.
109
110## [0.3.0] - 2017-06-26
111### Added
112- `BoxPredicate` type that wraps a `Predicate` trait object to make it easier
113  to store and work with predicates through a program. Also implements `Debug`
114  and `Display` wrappers as a convenience.
115- `FnPredicate` type that wraps a function of the type `Fn(&T) -> bool` in a
116  `Predicate` type.
117
118### Changed
119- The `boxed` function now returns a type `BoxPredicate` instead of a type
120  alias.
121- The `Item` type parameter of `Predicate` no longer has the `Sized`
122  restriction.
123
124## [0.2.0] - 2017-06-02
125### Added
126- This changelog
127
128### Fixed
129- Made modules under `predicate` private, with their public interfaces exposed
130  through `pub use` in the `predicate` `mod.rs` file.
131
132## 0.1.0 - 2017-06-02
133### Added
134- Initial commit of functional code
135- Continuous integration with Travis (Linux) and AppVeyor (Windows)
136- Basic README
137
138<!-- next-url -->
139[Unreleased]: https://github.com/assert-rs/predicates-rs/compare/v1.0.7...HEAD
140[1.0.7]: https://github.com/assert-rs/predicates-rs/compare/v1.0.6...v1.0.7
141[1.0.6]: https://github.com/assert-rs/predicates-rs/compare/v1.0.5...v1.0.6
142[1.0.5]: https://github.com/assert-rs/predicates-rs/compare/v1.0.4...v1.0.5
143[1.0.4]: https://github.com/assert-rs/predicates-rs/compare/v1.0.3...v1.0.4
144[1.0.3]: https://github.com/assert-rs/predicates-rs/compare/v1.0.2...v1.0.3
145[1.0.2]: https://github.com/assert-rs/predicates-rs/compare/v1.0.1...v1.0.2
146[1.0.1]: https://github.com/assert-rs/predicates-rs/compare/v1.0.0...v1.0.1
147[1.0.0]: https://github.com/assert-rs/predicates-rs/compare/v0.9.1...v1.0.0
148[0.9.1]: https://github.com/assert-rs/predicates-rs/compare/v0.9.0...v0.9.1
149[0.9.0]: https://github.com/assert-rs/predicates-rs/compare/v0.5.2...v0.9.0
150[0.5.2]: https://github.com/assert-rs/predicates-rs/compare/v0.5.1...v0.5.2
151[0.5.1]: https://github.com/assert-rs/predicates-rs/compare/v0.5.0...v0.5.1
152[0.5.0]: https://github.com/assert-rs/predicates-rs/compare/v0.4.0...v0.5.0
153[0.4.0]: https://github.com/assert-rs/predicates-rs/compare/v0.3.0...v0.4.0
154[0.3.0]: https://github.com/assert-rs/predicates-rs/compare/v0.2.0...v0.3.0
155[0.2.0]: https://github.com/assert-rs/predicates-rs/compare/v0.1.0...v0.2.0
156