pub enum LirScalarExpr {
Column(usize, TreatAsEqual<Option<Arc<str>>>),
Literal(Result<Row, EvalError>, ReprColumnType),
CallUnary {
func: UnaryFunc,
expr: Box<LirScalarExpr>,
},
CallBinary {
func: BinaryFunc,
expr1: Box<LirScalarExpr>,
expr2: Box<LirScalarExpr>,
},
CallVariadic {
func: VariadicFunc,
exprs: Vec<LirScalarExpr>,
},
If {
cond: Box<LirScalarExpr>,
then: Box<LirScalarExpr>,
els: Box<LirScalarExpr>,
},
}Expand description
Scalar expressions, as appear in MFPs. This is the stable, low-level, LIR definition of scalr expressions.
Variants§
Column(usize, TreatAsEqual<Option<Arc<str>>>)
A column of the input row
Literal(Result<Row, EvalError>, ReprColumnType)
A literal value. (Stored as a row, because we can’t own a Datum)
CallUnary
A function call that takes one expression as an argument.
CallBinary
A function call that takes two expressions as arguments.
Fields
func: BinaryFuncFunction
expr1: Box<LirScalarExpr>First argument
expr2: Box<LirScalarExpr>Second argument
CallVariadic
A function call that takes an arbitrary number of arguments.
If
Conditionally evaluated expressions.
It is important that then and els only be evaluated if
cond is true or not, respectively. This is the only way
users can guard execution (other logical operator do not
short-circuit) and we need to preserve that.
Fields
cond: Box<LirScalarExpr>Condition
then: Box<LirScalarExpr>Then branch
els: Box<LirScalarExpr>Else branch
Implementations§
Source§impl LirScalarExpr
impl LirScalarExpr
Sourcepub fn literal(res: Result<Datum<'_>, EvalError>, typ: ReprScalarType) -> Self
pub fn literal(res: Result<Datum<'_>, EvalError>, typ: ReprScalarType) -> Self
Packs a Datum or EvalError into a literal row of the given type.
Sourcepub fn literal_ok(datum: Datum<'_>, typ: ReprScalarType) -> Self
pub fn literal_ok(datum: Datum<'_>, typ: ReprScalarType) -> Self
Generates a literal of the given type.
Sourcepub fn as_literal(&self) -> Option<Result<Datum<'_>, &EvalError>>
pub fn as_literal(&self) -> Option<Result<Datum<'_>, &EvalError>>
If the expression is a literal, this returns the literal’s Datum or the literal’s EvalError. Otherwise, it returns None.
Sourcepub fn is_literal_true(&self) -> bool
pub fn is_literal_true(&self) -> bool
Returns true if the expression is a literal true.
Sourcepub fn as_literal_int64(&self) -> Option<i64>
pub fn as_literal_int64(&self) -> Option<i64>
If the expression is an int64, returns the literal.
Sourcepub fn call_unary<U: Into<UnaryFunc>>(self, func: U) -> Self
pub fn call_unary<U: Into<UnaryFunc>>(self, func: U) -> Self
Calls a unary function, with self as the argument.
Sourcepub fn call_binary<B: Into<BinaryFunc>>(self, other: Self, func: B) -> Self
pub fn call_binary<B: Into<BinaryFunc>>(self, other: Self, func: B) -> Self
Calls a binary function, with self as the first argument other as the second.
Sourcepub fn visit_pre<F>(&self, f: F)where
F: FnMut(&Self),
pub fn visit_pre<F>(&self, f: F)where
F: FnMut(&Self),
Visits all subexpressions in DFS preorder.
Sourcepub fn visit_pre_mut<F: FnMut(&mut Self)>(&mut self, f: F)
pub fn visit_pre_mut<F: FnMut(&mut Self)>(&mut self, f: F)
Iterative pre-order visitor.
Sourcepub fn children(&self) -> impl DoubleEndedIterator<Item = &Self>
pub fn children(&self) -> impl DoubleEndedIterator<Item = &Self>
Iterates through references to child expressions.
Sourcepub fn children_mut(&mut self) -> impl DoubleEndedIterator<Item = &mut Self>
pub fn children_mut(&mut self) -> impl DoubleEndedIterator<Item = &mut Self>
Iterates through mutable references to child expressions.
Trait Implementations§
Source§impl Clone for LirScalarExpr
impl Clone for LirScalarExpr
Source§fn clone(&self) -> LirScalarExpr
fn clone(&self) -> LirScalarExpr
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Columns for LirScalarExpr
impl Columns for LirScalarExpr
Source§fn visit_columns<F>(&mut self, action: F)
fn visit_columns<F>(&mut self, action: F)
Visits each column reference and applies action to the column.
Useful for remapping columns, or for collecting expression support.
Source§fn as_column(&self) -> Option<usize>
fn as_column(&self) -> Option<usize>
None.Source§fn as_column_mut(&mut self) -> Option<&mut usize>
fn as_column_mut(&mut self) -> Option<&mut usize>
Source§fn support_into(&self, support: &mut BTreeSet<usize>)
fn support_into(&self, support: &mut BTreeSet<usize>)
Source§fn support(&self) -> BTreeSet<usize>
fn support(&self) -> BTreeSet<usize>
Source§impl Debug for LirScalarExpr
impl Debug for LirScalarExpr
Source§impl<'de> Deserialize<'de> for LirScalarExpr
impl<'de> Deserialize<'de> for LirScalarExpr
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for LirScalarExpr
impl Display for LirScalarExpr
Source§impl Eval for LirScalarExpr
impl Eval for LirScalarExpr
Source§fn could_error(&self) -> bool
fn could_error(&self) -> bool
True iff evaluation could possibly error on non-error input Datum.
Source§impl From<&LirScalarExpr> for MirScalarExpr
impl From<&LirScalarExpr> for MirScalarExpr
Source§fn from(value: &LirScalarExpr) -> Self
fn from(value: &LirScalarExpr) -> Self
Source§impl Hash for LirScalarExpr
impl Hash for LirScalarExpr
Source§impl HumanizeDisplay for LirScalarExpr
impl HumanizeDisplay for LirScalarExpr
fn humanize<'a, M: HumanizerMode>( e: &HumanizedExpr<'a, Self, M>, f: &mut Formatter<'_>, ) -> Result
Source§impl OptimizableExpr for LirScalarExpr
impl OptimizableExpr for LirScalarExpr
Source§fn is_literal(&self) -> bool
fn is_literal(&self) -> bool
Source§fn is_literal_err(&self) -> bool
fn is_literal_err(&self) -> bool
Source§fn contains_temporal(&self) -> bool
fn contains_temporal(&self) -> bool
mz_now()).Source§fn eager_children(&mut self) -> Option<Vec<&mut Self>>
fn eager_children(&mut self) -> Option<Vec<&mut Self>>
Source§impl Ord for LirScalarExpr
impl Ord for LirScalarExpr
Source§fn cmp(&self, other: &LirScalarExpr) -> Ordering
fn cmp(&self, other: &LirScalarExpr) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for LirScalarExpr
impl PartialEq for LirScalarExpr
Source§fn eq(&self, other: &LirScalarExpr) -> bool
fn eq(&self, other: &LirScalarExpr) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for LirScalarExpr
impl PartialOrd for LirScalarExpr
Source§impl ScalarOps for LirScalarExpr
impl ScalarOps for LirScalarExpr
Source§fn match_col_ref(&self) -> Option<usize>
fn match_col_ref(&self) -> Option<usize>
Source§fn references(&self, column: usize) -> bool
fn references(&self, column: usize) -> bool
Source§impl Serialize for LirScalarExpr
impl Serialize for LirScalarExpr
Source§impl TryFrom<&MirScalarExpr> for LirScalarExpr
impl TryFrom<&MirScalarExpr> for LirScalarExpr
Source§impl VisitChildren<LirScalarExpr> for LirScalarExpr
impl VisitChildren<LirScalarExpr> for LirScalarExpr
Source§fn visit_children<F>(&self, f: F)where
F: FnMut(&Self),
fn visit_children<F>(&self, f: F)where
F: FnMut(&Self),
f to each direct child.Source§fn visit_mut_children<F>(&mut self, f: F)where
F: FnMut(&mut Self),
fn visit_mut_children<F>(&mut self, f: F)where
F: FnMut(&mut Self),
f to each direct child.Source§fn try_visit_children<F, E>(&self, f: F) -> Result<(), E>
fn try_visit_children<F, E>(&self, f: F) -> Result<(), E>
f to each direct child.Source§fn try_visit_mut_children<F, E>(&mut self, f: F) -> Result<(), E>
fn try_visit_mut_children<F, E>(&mut self, f: F) -> Result<(), E>
f to each direct child.Source§fn children<'a>(&'a self) -> impl DoubleEndedIterator<Item = &'a LirScalarExpr>where
LirScalarExpr: 'a,
fn children<'a>(&'a self) -> impl DoubleEndedIterator<Item = &'a LirScalarExpr>where
LirScalarExpr: 'a,
T-typed children of this element.Source§fn children_mut<'a>(
&'a mut self,
) -> impl DoubleEndedIterator<Item = &'a mut LirScalarExpr>where
LirScalarExpr: 'a,
fn children_mut<'a>(
&'a mut self,
) -> impl DoubleEndedIterator<Item = &'a mut LirScalarExpr>where
LirScalarExpr: 'a,
&mut T-typed children of this element. Read moreimpl Eq for LirScalarExpr
impl StructuralPartialEq for LirScalarExpr
Auto Trait Implementations§
impl Freeze for LirScalarExpr
impl RefUnwindSafe for LirScalarExpr
impl Send for LirScalarExpr
impl Sync for LirScalarExpr
impl Unpin for LirScalarExpr
impl UnsafeUnpin for LirScalarExpr
impl UnwindSafe for LirScalarExpr
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<T> Downcast for T
impl<T> Downcast for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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>
T in a tonic::RequestSource§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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
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>
RustType::from_proto.Source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
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)
std::ops::AddAssign, for types that do not implement AddAssign.Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Source§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
Source§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T> Visit for Twhere
T: VisitChildren<T>,
impl<T> Visit for Twhere
T: VisitChildren<T>,
Source§fn visit_post<F>(&self, f: &mut F)
fn visit_post<F>(&self, f: &mut F)
self.Source§fn visit_mut_post<F>(&mut self, f: &mut F)
fn visit_mut_post<F>(&mut self, f: &mut F)
self.Source§fn try_visit_post<F, E>(&self, f: &mut F) -> Result<(), E>
fn try_visit_post<F, E>(&self, f: &mut F) -> Result<(), E>
self.Source§fn try_visit_mut_post<F, E>(&mut self, f: &mut F) -> Result<(), E>
fn try_visit_mut_post<F, E>(&mut self, f: &mut F) -> Result<(), E>
self.Source§fn visit_pre_with_context<Context, AccFun, Visitor>(
&self,
init: Context,
acc_fun: &mut AccFun,
visitor: &mut Visitor,
)
fn visit_pre_with_context<Context, AccFun, Visitor>( &self, init: Context, acc_fun: &mut AccFun, visitor: &mut Visitor, )
self, which also accumulates context
information along the path from the root to the current node’s parent.
acc_fun is a similar closure as in fold. The accumulated context is passed to the
visitor, along with the current node. Read moreSource§fn visit_mut_pre<F>(&mut self, f: &mut F)
fn visit_mut_pre<F>(&mut self, f: &mut F)
self.Source§fn try_visit_pre<F, E>(&self, f: &mut F) -> Result<(), E>
fn try_visit_pre<F, E>(&self, f: &mut F) -> Result<(), E>
self.Source§fn try_visit_mut_pre<F, E>(&mut self, f: &mut F) -> Result<(), E>
fn try_visit_mut_pre<F, E>(&mut self, f: &mut F) -> Result<(), E>
self.