llkv-expr 0.5.0-alpha

Query expression AST for the LLKV toolkit.
Documentation
# LLKV Query Expression AST

**Work in Progress**

A buffer-level, allocator-friendly predicate AST over borrowed byte slices (`&[u8]`), built for the [LLKV](../) toolkit.

This crate intentionally ships without an evaluator or planner.

Expressions can be used with [llkv-table](../llkv-table/) for querying.

### Currently supports
- **Generic field IDs**: `Expr<'a, F>` and `Filter<'a, F>` work with any `F` (e.g., `u32`, `&'static str`).
- **Logical composition**: `And(Vec<Expr>)`, `Or(Vec<Expr>)`, `Not(Box<Expr>)`.
- **Predicates over bytes**:
  - Equality: `Equals(&[u8])`
  - Ranges with precise bounds: `Range { lower: Bound<&[u8]>, upper: Bound<&[u8]> }`
  - Comparisons: `GreaterThan`, `GreaterThanOrEquals`, `LessThan`, `LessThanOrEquals`
  - Sets & patterns: `In(&[&[u8]])`, `StartsWith`, `EndsWith`, `Contains`
- **Ergonomic builders**: `Expr::all_of`, `Expr::any_of`, `Expr::not`
- **Zero-copy friendly**: operands are borrowed; no implicit allocation or decoding is performed here.

## License

Licensed under the [Apache-2.0 License](../LICENSE).