Enums
DynamicWhere.ex is configured almost entirely through eight enums. They describe what a value is, how to compare it, how to combine conditions, and how to tune the internal reflection cache. Every JSON shape you send from the front-end is some combination of these.
Overview
The eight enums fall into three families: query (describes the filter expression), shape (describes the result shape), and cache (tunes the reflection cache).
| Enum | Family | Purpose |
|---|---|---|
DataType | Query | Logical type of a condition value — drives parsing, coercion, and the set of legal operators. |
Operator | Query | The comparison applied by a condition — 28 operators covering equality, text matching, ranges, sets, and null checks. |
Connector | Query | The logical glue (And / Or) that joins sibling conditions inside a ConditionGroup. |
Direction | Shape | Sort direction (Ascending / Descending) for an OrderBy. |
Intersection | Shape | The set operation (Union / Intersect / Except) applied between condition sets in a Segment. |
Aggregator | Shape | Aggregation function (Count, Sumation, Average, Minimum, Maximum, and friends) used inside a GroupBy. |
CacheEvictionStrategy | Cache | Eviction algorithm for the reflection cache — FIFO, LRU (default), or LFU. |
CacheMemoryType | Cache | Identifies one of the three internal cache stores for monitoring and clearing operations. |
Namespace
All query and shape enums live in DynamicWhere.ex.Enums. Cache enums live in DynamicWhere.ex.Optimization.Cache.Config.
Note
Every enum sub-page lists every value from the source of truth — no abbreviation. Use the table above as a quick map, then dive into the page you need.
Where to go next
- DataType → what each logical type means and which operators it accepts.
- Operator → the full operator matrix and the value count each one requires.
- Condition class → how the enums fit together inside a single filter predicate.