Skip to main content

Module builder

Module builder 

Source
Expand description

Haystack filter builder

Provides a fluent, type-safe API for constructing Filter values by building the filter’s AST directly — no intermediate string parsing required.

§Examples

use libhaystack::filter::{Filter, FilterBuilder};
use libhaystack::val::Value;

// site and dis == "Main"
let filter = FilterBuilder::new()
    .has("site")
    .and()
    .eq("dis", Value::make_str("Main"))
    .build();

assert_eq!(filter.to_string(), r#"site and dis == "Main""#);
use libhaystack::filter::FilterBuilder;
use libhaystack::val::Value;

// (equip or point) and siteRef == @mySite
let filter = FilterBuilder::new()
    .start_parens()
        .has("equip")
        .or()
        .has("point")
    .end_parens()
    .and()
    .eq("siteRef", Value::make_ref("mySite"))
    .build();

assert_eq!(filter.to_string(), "(equip or point) and siteRef == @mySite");

Structs§

FilterBuilder
Fluent builder for constructing a Haystack Filter via its AST.
HasTerm
Typestate marker for FilterBuilder — a term has just been added.
NeedsTerm
Typestate marker for FilterBuilder — a term must be added next.

Traits§

IntoFilterPath
Converts a value into a filter Path.