[−][src]Struct wirefilter::Filter
An IR for a compiled filter expression.
Currently it works by creating and combining boxed untyped closures and performing indirect calls between them, which is fairly cheap, but, surely, not as fast as an inline code with real JIT compilers.
On the other hand, it's much less risky than allocating, trusting and executing code at runtime, because all the code being executed is already statically generated and verified by the Rust compiler and only the data differs. For the same reason, our "compilation" times are much better than with a full JIT compiler as well.
In the future the underlying representation might change, but for now it provides the best trade-off between safety and performance of compilation and execution.
Methods
impl<'s> Filter<'s>
[src]
pub fn execute(
&self,
ctx: &ExecutionContext<'s>
) -> Result<bool, SchemeMismatchError>
[src]
&self,
ctx: &ExecutionContext<'s>
) -> Result<bool, SchemeMismatchError>
Executes a filter against a provided context with values.
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,