# query.FilterEnum

- **Module:** query
- **Package:** libtmux
- **Language:** Rust
- **Kind:** trait
- **Source:** https://github.com/libtmux/libtmux-rs/blob/8a648c0894dfffc9303583f753b6c8ae01f2fe76/crates/libtmux/src/query.rs#L707
- **Page:** https://libtmux.org/reference/rs/query-filterenum/

Stable string semantics for a custom enum filter field.

Every value returned by [`FilterEnum::filter_name`] must be present in
[`FilterEnum::FILTER_VARIANTS`], and the variant names must be unique.

## Example

```rust
use libtmux::query::FilterEnum;

enum State {
    Ready,
    Blocked,
}

impl FilterEnum for State {
    const FILTER_VARIANTS: &'static [&'static str] = &["ready", "blocked"];

    fn filter_name(&self) -> &'static str {
        match self {
            Self::Ready => "ready",
            Self::Blocked => "blocked",
        }
    }
}

assert_eq!(State::Ready.filter_name(), "ready");
```
