PackageTrack
Sign in Get early access

predicates

An implementation of boolean-valued predicate functions.

3.1.4 213M downloads/mo #478 most downloaded on crates.io assert-rs/predicates-rs

What this package is like to depend on

Last release 6 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

1 release in the last 12 months

see the full history below

Release timeline

37 releases · Jun 2017 to Feb 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 37
  1. 3.1.4 11 Feb 2026
    Release notes

    chore: Release predicates version 3.1.4

    Open source →
    Release notes
    • Make BoxPredicate::find_case use the inner find_case implementation
    Open source →
  2. 3.1.3 19 Dec 2024
    Release notes

    chore: Release predicates version 3.1.3

    Open source →
    Release notes

    Features

    • The boxed function is now available for predicates with an Item type that is not Sized.
    Open source →
  3. 3.1.2 25 Jul 2024
    Release notes

    chore: Release predicates version 3.1.2

    Open source →
  4. 3.1.0 15 Jan 2024
    Release notes

    chore: Release predicates version 3.1.0

    Open source →
    Release notes

    Compatibility

    • Update MSRV to 1.70.0

    Internals

    • Remove itertools
    Open source →
  5. 3.0.4 18 Sep 2023
    Release notes

    Compatibility

    • Update MSRV to 1.69.0

    Internal

    • Update itertools to 0.11
    Open source →
  6. 3.0.3 13 Apr 2023
    Release notes

    Internal

    • Update anstyle to 1.0
    Open source →
  7. 3.0.2 24 Mar 2023
    Release notes

    Fixes

    • Respect follow_links when checking whether a path is backed by a file
    Open source →
  8. 3.0.1 15 Mar 2023
    Release notes

    Fixes

    • Show colors for diff header
    Open source →
  9. 3.0.0 15 Mar 2023
    Release notes

    Compatibility

    • color feature no longer conditionally applies color. Instead color will be applied when formatting as {:#}
    • color-auto feature was removed
    • Update MSRV to 1.64.0
    Open source →
  10. 2.1.5 29 Dec 2022
    Release notes

    Gixes

    • Further generalized borrowing of predicates with Borrow trait
    Open source →
  11. 2.1.4 02 Dec 2022

    Nothing published for this version

  12. 2.1.3 13 Nov 2022

    Nothing published for this version

  13. 2.1.2 05 Nov 2022
    Release notes

    Compatibility

    Update MSRV to 1.60

    Fixes

    • Hide internal-only optional dependencies
    Open source →
  14. 2.1.1 11 Jan 2022

    Nothing published for this version

  15. 2.1.0 22 Nov 2021
    Release notes

    Fixed

    • 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 diff predicate
      • 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_file assertions
    • Clarify that the constant in Eq and Ord predicates is the expected value
    Open source →
  16. 2.0.3 07 Oct 2021

    Nothing published for this version

  17. 2.0.2 16 Aug 2021
    Release notes

    Added

    • All predicates now implement Send and Sync when it's appropriate
    Open source →
  18. 2.0.1 26 Jul 2021
    Release notes

    Changed

    • Upgraded float-cmp
    Open source →
  19. 2.0.0 03 Jul 2021
    Release notes

    Breaking Changes

    • predicates::str::diff was removed
    • predicates::str::similar was renamed to diff
    • The difference feature flag was renamed to diff
    • diff().split and diff().distance were removed

    Fixes

    • Shrink the output of Diffs because its redundant
    • Moved off of an unmaintained Diff library
    Open source →
  20. 1.0.8 28 Apr 2021

    Nothing published for this version

  21. 1.0.7 30 Jan 2021

    Nothing published for this version

  22. 1.0.6 29 Dec 2020
    Release notes

    Fixed

    • NamePredicate now adds itself to the Case returned by find_case.
    Open source →
  23. 1.0.5 18 Jul 2020
    Release notes

    Fixed

    • Update float-cmp dependency
    Open source →
  24. 1.0.4 04 Mar 2020
    Release notes

    Fixed

    • Upgrade normalize-line-endings
    Open source →
  25. 1.0.3 25 Feb 2020

    Nothing published for this version

  26. 1.0.2 18 Nov 2019
    Release notes

    Fixed

    • BooleanPredicate now implements Predicate<T> where T: ?Sized (#84)
    Open source →
  27. 1.0.1 22 Apr 2019
    Release notes

    Changed

    • BooleanPredicate is no longer generic, and is always Send and Sync.
    Open source →
  28. 1.0.0 06 Oct 2018

    Nothing published for this version

  29. 0.9.1 06 Oct 2018
    Release notes

    Added

    • Created a predicate selection guide.
    Open source →
  30. 0.9.0 30 Jul 2018
    Release notes

    Added

    • Support ?Sized types for FnPredicate.
    • 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 new predicates-tree crate.
    • Split out predicates-core for reducing ecosystem breaking changes.

    Changed

    • Predicates must also implement PredicateReflection
    Open source →
  31. 0.5.2 20 Jul 2018
    Release notes

    Added

    • path: support file-based str predicates (4b430532, closes #56)
    • Expand trait coverage (33972a7d)
    Open source →
  32. 0.5.1 06 Jun 2018
    Release notes

    Added

    Open source →
  33. 0.5.0 30 May 2018
    Release notes

    Added

    • trait:
      • Allow naming Predicate expressions
    • str:
      • Add regex repetition count, closes #27
      • from_utf8 adapter, closes #21
      • Trimming predicate decorator
    • path:
      • eq_file predicate 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_path extension method to Predicate<[u8]> that turns it into a Predicate<Path>, closes #31.

    Breaking Changes

    • trait:
      • All Predicates are now Display (05216708, breaks #)
      • Decouple boxing from trait (f981fac3, breaks #)
      • Decouple boolean logic from trait (88b72f9e, breaks #)
    Open source →
  34. 0.4.0 10 May 2018
    Release notes

    Added

    • 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_close Predicate (see #11).
    • path:
      • File type predicates: is_file, is_dir, is_symlink (see #8).
      • Existence predicate: exists, missing (see #8).
    • str:
      • Basic string predicates: is_empty, starts_with, ends_with, and contains with optional count (see #25).
      • Regex predicate (see #12).
      • Edit-distance predicate (see #9).

    Changed

    • Clearly delineate API from prelude (see #17).
    • Switch Predicate trait from Associated Types to Generics.
    • iter:
      • Renamed set predicates as iter predicates to clarify the intent from some implementation.
      • Remove ambiguity of predicate factories (see #24):
      • contains -> in_iter
      • contains_hashable -> in_hash
      • Turned contains_ord into a specialization of in_iter by adding a sort method.
    Open source →
  35. 0.3.0 26 Jun 2017
    Release notes

    Added

    • 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.

    Changed

    • The boxed function now returns a type BoxPredicate instead of a type alias.
    • The Item type parameter of Predicate no longer has the Sized restriction.
    Open source →
  36. 0.2.0 02 Jun 2017
    Release notes

    Added

    • This changelog

    Fixed

    • Made modules under predicate private, with their public interfaces exposed through pub use in the predicate mod.rs file.
    Open source →
  37. 0.1.0 02 Jun 2017
    Release notes

    Added

    • Initial commit of functional code
    • Continuous integration with Travis (Linux) and AppVeyor (Windows)
    • Basic README

    <!-- 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

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive