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 - ReleaseDate
3.1.4 - 2026-02-11
- Make
BoxPredicate::find_caseuse the innerfind_caseimplementation
3.1.3 - 2024-12-19
- The
boxedfunction is now available for predicates with anItemtype that is notSized.
3.1.2 - 2024-07-25
3.1.1 - 2024-07-25
- Update MSRV to 1.74
3.1.0 - 2024-01-15
- Update MSRV to 1.70.0
- Remove
itertools
3.0.4 - 2023-09-18
- Update MSRV to 1.69.0
- Update
itertoolsto 0.11
3.0.3 - 2023-04-13
- Update anstyle to 1.0
3.0.2 - 2023-03-24
- Respect
follow_linkswhen checking whether a path is backed by a file
3.0.1 - 2023-03-14
- Show colors for diff header
3.0.0 - 2023-03-14
colorfeature no longer conditionally applies color. Instead color will be applied when formatting as{:#}color-autofeature was removed- Update MSRV to 1.64.0
2.1.5 - 2022-12-29
- Further generalized borrowing of predicates with
Borrowtrait
2.1.4 - 2022-12-02
2.1.3 - 2022-11-13
2.1.2 - 2022-11-05
Update MSRV to 1.60
- Hide internal-only optional dependencies
2.1.1 - 2022-01-11
2.1.0 - 2021-11-22
- Report user's value (the actual)
- Having the caller own this means you won't get intermediates like file paths
- We already show it for the
diffpredicate - Now we show it in each leaf predicate (like Eq) and when adapting it (like taking a path and loading its file)
- Remove redundant result with
eq_fileassertions - Clarify that the constant in Eq and Ord predicates is the expected value
2.0.3 - 2021-10-07
2.0.2 - 2021-08-16
- All predicates now implement
SendandSyncwhen it's appropriate
2.0.1 - 2021-07-26
- Upgraded
float-cmp
2.0.0 - 2021-07-03
predicates::str::diffwas removedpredicates::str::similarwas renamed todiff- The
differencefeature flag was renamed todiff diff().splitanddiff().distancewere removed
- Shrink the output of Diffs because its redundant
- Moved off of an unmaintained Diff library
1.0.8 - 2021-04-28
1.0.7 - 2021-01-29
1.0.6 - 2020-12-28
NamePredicatenow adds itself to theCasereturned byfind_case.
1.0.5 - 2020-07-18
- Update float-cmp dependency
1.0.4 - 2020-03-04
- Upgrade normalize-line-endings
1.0.3 - 2020-02-25
1.0.2 - 2019-11-18
BooleanPredicatenow implementsPredicate<T>whereT: ?Sized(#84)
1.0.1 - 2019-04-22
- BooleanPredicate is no longer generic, and is always Send and Sync.
1.0.0 - 2018-10-06
0.9.1 - 2018-10-05
- Created a predicate selection guide.
0.9.0 - 2018-07-30
- Support
?Sizedtypes forFnPredicate. - Add
str_pred.normalize()predicate. - Add reflection to
Predicate. - Add support for predicates returning why they failed (
find_case) which can be combined with the newpredicates-treecrate. - Split out
predicates-corefor reducing ecosystem breaking changes.
- Predicates must also implement
PredicateReflection
0.5.2 - 2018-07-20
0.5.1 - 2018-06-05
- Fix eq for str (7650e9e6)
0.5.0 - 2018-05-30
- trait:
- Allow naming
Predicateexpressions
- Allow naming
- str:
- Add regex repetition count, closes #27
- from_utf8 adapter, closes #21
- Trimming predicate decorator
- path:
eq_filepredicate to test a file-under-test with a fixture, closes #32.eq_file(...).utf()adapter to do string comparisons with the fixture
- Add a
from_file_pathextension method toPredicate<[u8]>that turns it into aPredicate<Path>, closes #31.
- trait:
0.4.0 - 2018-05-10
- Define oldest supported version of Rust as 1.22.
- CI that ensures
- works on Windows and Linux
- works on 1.22 to nightly
- float:
is_closePredicate (see #11). - path:
- File type predicates:
is_file,is_dir,is_symlink(see #8). - Existence predicate:
exists,missing(see #8).
- File type predicates:
- str:
- Basic string predicates:
is_empty,starts_with,ends_with, andcontainswith optional count (see #25). - Regex predicate (see #12).
- Edit-distance predicate (see #9).
- Basic string predicates:
- Clearly delineate API from prelude (see #17).
- Switch
Predicatetrait from Associated Types to Generics. - iter:
- Renamed
setpredicates asiterpredicates to clarify the intent from some implementation. - Remove ambiguity of predicate factories (see #24):
contains->in_itercontains_hashable->in_hash- Turned
contains_ordinto a specialization ofin_iterby adding asortmethod.
- Renamed
0.3.0 - 2017-06-26
BoxPredicatetype that wraps aPredicatetrait object to make it easier to store and work with predicates through a program. Also implementsDebugandDisplaywrappers as a convenience.FnPredicatetype that wraps a function of the typeFn(&T) -> boolin aPredicatetype.
- The
boxedfunction now returns a typeBoxPredicateinstead of a type alias. - The
Itemtype parameter ofPredicateno longer has theSizedrestriction.
0.2.0 - 2017-06-02
- This changelog
- Made modules under
predicateprivate, with their public interfaces exposed throughpub usein thepredicatemod.rsfile.
- Initial commit of functional code
- Continuous integration with Travis (Linux) and AppVeyor (Windows)
- Basic README