pub struct Builder { /* private fields */ }Expand description
Implementations§
Source§impl Builder
impl Builder
Sourcepub fn insert<T>(&mut self, expr: T) -> usizewhere
T: Into<Expression>,
pub fn insert<T>(&mut self, expr: T) -> usizewhere
T: Into<Expression>,
Inserts an expression into the filter and returns its index.
This method adds an Expression to the filter builder, and returns
the index of the inserted condition, which can be used to remove it.
Note that the expression is immediately converted into a [Condition]
for performance reasons, which means it cannot be recovered. If we’d
store expressions directly, removing or inserting new expressions into
the filter would mandate recompilation of all expressions.
§Examples
use zrx_id::expression::Filter;
use zrx_id::{selector, Expression};
// Create filter builder and insert expression
let mut builder = Filter::builder();
builder.insert(Expression::any(|expr| {
expr.with(selector!(location = "**/*.jpg")?)?
.with(selector!(location = "**/*.png")?)
})?);Sourcepub fn remove(&mut self, index: usize)
pub fn remove(&mut self, index: usize)
Removes an expression from the filter.
§Examples
use zrx_id::expression::Filter;
use zrx_id::{selector, Expression};
// Create filter builder and insert expression
let mut builder = Filter::builder();
builder.insert(Expression::any(|expr| {
expr.with(selector!(location = "**/*.jpg")?)?
.with(selector!(location = "**/*.png")?)
})?);
// Remove expression
builder.remove(0);Sourcepub fn build(self) -> Result<Filter, Error>
pub fn build(self) -> Result<Filter, Error>
Builds the filter.
§Errors
Returns Error::Matcher if the underlying matcher can’t be built.
§Examples
use zrx_id::expression::Filter;
use zrx_id::{selector, Expression};
// Create filter builder and insert expression
let mut builder = Filter::builder();
builder.insert(Expression::any(|expr| {
expr.with(selector!(location = "**/*.jpg")?)?
.with(selector!(location = "**/*.png")?)
})?);
// Create filter from builder
let filter = builder.build()?;Trait Implementations§
Auto Trait Implementations§
impl Freeze for Builder
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnsafeUnpin for Builder
impl UnwindSafe for Builder
Blanket Implementations§
impl<T> Arguments for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more