NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #501 most downloaded on crates.io
An implementation of boolean-valued predicate functions.
Last release 7 months ago
11 Feb 2026
Release timing varies
gaps range from 8 days to 1.1 years
Most releases are documented
notes for 29 of 37 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
37 releases · first in 2017
chore: Release predicates version 3.1.4
chore: Release predicates version 3.1.4
BoxPredicate::find_case use the inner find_case implementationchore: Release predicates version 3.1.3
chore: Release predicates version 3.1.3
boxed function is now available for predicates with an Item type that
is not Sized.One column per quarter.
chore: Release predicates version 3.1.2
chore: Release predicates version 3.1.2
chore: Release predicates version 3.1.0
chore: Release predicates version 3.1.0
itertools### Compatibility - Update MSRV to 1.69.0 ### Internal - Update itertools to 0.11
itertools to 0.11### Internal - Update anstyle to 1.0
Respect follow_links when checking whether a path is backed by a file
follow_links when checking whether a path is backed by a file### Fixes - Show colors for diff header
color feature no longer conditionally applies color. Instead color will be applied when formatting as {:#}
color feature no longer conditionally applies color. Instead color will be applied when formatting as {:#}color-auto feature was removedFurther generalized borrowing of predicates with Borrow trait
Borrow traitNothing published for this version
Nothing published for this version
Hide internal-only optional dependencies
Update MSRV to 1.60
Nothing published for this version
Report user's value (the actual)
diff predicateeq_file assertionsNothing published for this version
All predicates now implement Send and Sync when it's appropriate
Send and Sync when it's appropriate### Changed - Upgraded float-cmp
float-cmppredicates::similar was renamed to diff
predicates::str::diff was removedpredicates::str::similar was renamed to diffdifference feature flag was renamed to diffdiff().split and diff().distance were removedNothing published for this version
Nothing published for this version
NamePredicate now adds itself to the Case returned by find_case.
NamePredicate now adds itself to the Case returned by find_case.### Fixed - Update float-cmp dependency
### Fixed - Upgrade normalize-line-endings
Nothing published for this version
BooleanPredicate now implements Predicate where T: ?Sized
BooleanPredicate now implements Predicate<T> where T: ?Sized
(#84)BooleanPredicate is no longer generic, and is always Send and Sync.
Nothing published for this version
Created a predicate selection guide.
Split out predicates-core for reducing ecosystem breaking changes.
?Sized types for FnPredicate.str_pred.normalize() predicate.Predicate.find_case) which can
be combined with the new predicates-tree crate.predicates-core for reducing ecosystem breaking changes.PredicateReflectionpath: support file-based str predicates (4b430532, closes #56)
### Added - Fix eq for str
Allow naming Predicate expressions
Predicate expressionseq_file predicate to test a file-under-test with a fixture, closes #32.
eq_file(...).utf() adapter to do string comparisons with the fixturefrom_file_path extension method to Predicate<[u8]> that turns it into a Predicate<Path>, closes #31.Define oldest supported version of Rust as 1.22.
is_close Predicate (see #11).is_file, is_dir, is_symlink (see #8).exists, missing (see #8).is_empty, starts_with, ends_with, and contains with optional count (see #25).Predicate trait from Associated Types to Generics.set predicates as iter predicates to clarify the intent from some implementation.contains -> in_itercontains_hashable -> in_hashcontains_ord into a specialization of in_iter by adding a sort method.BoxPredicate type that wraps a Predicate trait object to make it easier to store and work with predicates through a program. Also implements Debug and
BoxPredicate type that wraps a Predicate trait object to make it easier
to store and work with predicates through a program. Also implements Debug
and Display wrappers as a convenience.FnPredicate type that wraps a function of the type Fn(&T) -> bool in a
Predicate type.boxed function now returns a type BoxPredicate instead of a type
alias.Item type parameter of Predicate no longer has the Sized
restriction.Made modules under predicate private, with their public interfaces exposed through pub use in the predicate mod.rs file.
predicate private, with their public interfaces exposed
through pub use in the predicate mod.rs file.Initial commit of functional code
<!-- next-url --> [Unreleased]: https://github.com/assert-rs/predicates-rs/compare/v3.1.4...HEAD [3.1.4]: https://github.com/assert-rs/predicates-rs/compare/v3.1.3...v3.1.4 [3.1.3]: https://github.com/assert-rs/predicates-rs/compare/v3.1.2...v3.1.3 [3.1.2]: https://github.com/assert-rs/predicates-rs/compare/v3.1.1...v3.1.2 [3.1.1]: https://github.com/assert-rs/predicates-rs/compare/v3.1.0...v3.1.1 [3.1.0]: https://github.com/assert-rs/predicates-rs/compare/v3.0.4...v3.1.0 [3.0.4]: https://github.com/assert-rs/predicates-rs/compare/v3.0.3...v3.0.4 [3.0.3]: https://github.com/assert-rs/predicates-rs/compare/v3.0.2...v3.0.3 [3.0.2]: https://github.com/assert-rs/predicates-rs/compare/v3.0.1...v3.0.2 [3.0.1]: https://github.com/assert-rs/predicates-rs/compare/v3.0.0...v3.0.1 [3.0.0]: https://github.com/assert-rs/predicates-rs/compare/v2.1.5...v3.0.0 [2.1.5]: https://github.com/assert-rs/predicates-rs/compare/v2.1.4...v2.1.5 [2.1.4]: https://github.com/assert-rs/predicates-rs/compare/v2.1.3...v2.1.4 [2.1.3]: https://github.com/assert-rs/predicates-rs/compare/v2.1.2...v2.1.3 [2.1.2]: https://github.com/assert-rs/predicates-rs/compare/v2.1.1...v2.1.2 [2.1.1]: https://github.com/assert-rs/predicates-rs/compare/v2.1.0...v2.1.1 [2.1.0]: https://github.com/assert-rs/predicates-rs/compare/v2.0.3...v2.1.0 [2.0.3]: https://github.com/assert-rs/predicates-rs/compare/v2.0.2...v2.0.3 [2.0.2]: https://github.com/assert-rs/predicates-rs/compare/v2.0.1...v2.0.2 [2.0.1]: https://github.com/assert-rs/predicates-rs/compare/v2.0.0...v2.0.1 [2.0.0]: https://github.com/assert-rs/predicates-rs/compare/v1.0.8...v2.0.0 [1.0.8]: https://github.com/assert-rs/predicates-rs/compare/v1.0.7...v1.0.8 [1.0.7]: https://github.com/assert-rs/predicates-rs/compare/v1.0.6...v1.0.7 [1.0.6]: https://github.com/assert-rs/predicates-rs/compare/v1.0.5...v1.0.6 [1.0.5]: https://github.com/assert-rs/predicates-rs/compare/v1.0.4...v1.0.5 [1.0.4]: https://github.com/assert-rs/predicates-rs/compare/v1.0.3...v1.0.4 [1.0.3]: https://github.com/assert-rs/predicates-rs/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/assert-rs/predicates-rs/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/assert-rs/predicates-rs/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/assert-rs/predicates-rs/compare/v0.9.1...v1.0.0 [0.9.1]: https://github.com/assert-rs/predicates-rs/compare/v0.9.0...v0.9.1 [0.9.0]: https://github.com/assert-rs/predicates-rs/compare/v0.5.2...v0.9.0 [0.5.2]: https://github.com/assert-rs/predicates-rs/compare/v0.5.1...v0.5.2 [0.5.1]: https://github.com/assert-rs/predicates-rs/compare/v0.5.0...v0.5.1 [0.5.0]: https://github.com/assert-rs/predicates-rs/compare/v0.4.0...v0.5.0 [0.4.0]: https://github.com/assert-rs/predicates-rs/compare/v0.3.0...v0.4.0 [0.3.0]: https://github.com/assert-rs/predicates-rs/compare/v0.2.0...v0.3.0 [0.2.0]: https://github.com/assert-rs/predicates-rs/compare/v0.1.0...v0.2.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →