# quantor
[](https://crates.io/crates/quantor)
[](https://docs.rs/quantor)
[](https://crates.io/crates/quantor)
[](https://crates.io/crates/quantor)
[](https://github.com/nervousnullptr/quantor#msrv)
**Declarative quantifiers and logical assertions for Rust iterators and collections.**
`quantor` provides lightweight, expressive tools for validation, filtering, and testing โ with zero dependencies.
---
## โจ Features
`quantor` lets you express logic over data in a way that feels natural and readable:
- ๐ **Quantifiers** โ Use familiar constructs like `forall`, `exists`, `none`, and `exactly_one`.
- ๐งน **Selection utilities** โ Filter with `select_where`, extract duplicates, check for uniqueness.
- ๐ง **Structured logic** โ Run `pairwise` comparisons or validate equality across items.
- ๐งช **Assertions** โ Add runtime guarantees with `assert_forall!`, `assert_exists!`, etc.
---
## Example
```rust
use quantor::{forall, select_where, assert_forall};
let nums = vec![2, 4, 6];
// Check if all elements are even
// Use the macro version for test-friendly assertions
assert_forall!(&nums, |x| x % 2 == 0);
// Extract matching elements
let evens = select_where(&nums, |x| x % 2 == 0);
assert_eq!(evens, vec![&2, &4, &6]);
```
---
## ๐ฆ Installation
Add this to your `Cargo.toml`:
```
quantor = "0.1"
```
Optional features:
* `method-api` โ Enable `.forall()` and other iterator-style methods.
* `debug-tools` โ Add debugging macros like `debug_assert_forall!` or `debug_exists!`.
---
## ๐ Documentation
See [docs.rs](https://docs.rs/quantor) for full API documentation and examples.