Struct mz_expr::interpret::SpecialBinary
source · struct SpecialBinary {
map_fn: for<'a> fn(_: ResultSpec<'a>, _: ResultSpec<'a>) -> ResultSpec<'a>,
pushdownable: (bool, bool),
}
Expand description
A binary function we’ve added special-case handling for; including:
- A two-argument function, taking and returning ResultSpecs. This overrides the default function-handling logic entirely.
- Metadata on whether / not this function is pushdownable. See Trace.
Fields§
§map_fn: for<'a> fn(_: ResultSpec<'a>, _: ResultSpec<'a>) -> ResultSpec<'a>
§pushdownable: (bool, bool)
Implementations§
source§impl SpecialBinary
impl SpecialBinary
sourcefn for_func(func: &BinaryFunc) -> Option<SpecialBinary>
fn for_func(func: &BinaryFunc) -> Option<SpecialBinary>
Returns the special-case handling for a particular function, if it exists.
Auto Trait Implementations§
impl Freeze for SpecialBinary
impl RefUnwindSafe for SpecialBinary
impl Send for SpecialBinary
impl Sync for SpecialBinary
impl Unpin for SpecialBinary
impl UnwindSafe for SpecialBinary
Blanket Implementations§
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
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.