Container for holding a thread-safe function type that can receive a V value and
return true/false for whether the value matches some internal expectation.
A Filter is a generic type that contains methods that are invoked by the build_filter
function. Each method returns a heap-allocated Matcher<V> (typically a closure) containing
logic to determine whether the value matches the filter. A filter is intended to be side-effect
free and idempotent, and so only receives an immutable reference to self.
A Resolver is type that can build and return an IntoIterator of Datadog Search
Syntax Fields. These are intended to be passed along to Filter methods as pre-parsed
field types which can be used to determine which logic is necessary to match against.