This is my successful port of a table filter control in Rust for the egui library, although it probably could use some API cleanup for consumer usage.
I first made this for JavaFX almost 10 years ago.
It can be used alongside the TableBuilder in egui-extras, but can effectively be integrated with any control that needs to filter data.
I would like to make this into a library so I welcome any contributions to make the API more streamlined. It is highly flexible and configurable, and I'd like to expand on that while keeping it easy to use.
You can also create custom search functionality to parse the strings for special syntax, like regular expressions or date ranges.
- Gray out entries that are no longer visible due to other column filter
- Extract out common methods as traits for
ColumnFiltersimplementations - Stress test on a larger dataset and optimize with caches
- Find opportunities to make more idiomatic without making overly opinionated (macros might be needed :/)
- Have pre-defined templates to streamline common data types and operations (e.g., search with int ranges, date ranges, regular expressions, comma-separated values)
- Documentation on usage
- Explore patterns outside the table in egui-extras, as this widget is agnostic to controls it is bound to