Files
greptimedb/sql/ast/enum.Expr.html
2026-05-06 03:54:13 +00:00

692 lines
240 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="An SQL expression of any type."><title>Expr in sql::ast - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="sql" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc enum"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../sql/index.html">sql</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Expr</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#semantics--type-checking" title="Semantics / Type Checking">Semantics / Type Checking</a></li><li><a href="#equality-and-hashing-does-not-include-source-locations" title="Equality and Hashing Does not Include Source Locations">Equality and Hashing Does not Include Source Locations</a></li></ul><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.AllOp" title="AllOp">AllOp</a></li><li><a href="#variant.AnyOp" title="AnyOp">AnyOp</a></li><li><a href="#variant.Array" title="Array">Array</a></li><li><a href="#variant.AtTimeZone" title="AtTimeZone">AtTimeZone</a></li><li><a href="#variant.Between" title="Between">Between</a></li><li><a href="#variant.BinaryOp" title="BinaryOp">BinaryOp</a></li><li><a href="#variant.Case" title="Case">Case</a></li><li><a href="#variant.Cast" title="Cast">Cast</a></li><li><a href="#variant.Ceil" title="Ceil">Ceil</a></li><li><a href="#variant.Collate" title="Collate">Collate</a></li><li><a href="#variant.CompoundFieldAccess" title="CompoundFieldAccess">CompoundFieldAccess</a></li><li><a href="#variant.CompoundIdentifier" title="CompoundIdentifier">CompoundIdentifier</a></li><li><a href="#variant.Convert" title="Convert">Convert</a></li><li><a href="#variant.Cube" title="Cube">Cube</a></li><li><a href="#variant.Dictionary" title="Dictionary">Dictionary</a></li><li><a href="#variant.Exists" title="Exists">Exists</a></li><li><a href="#variant.Extract" title="Extract">Extract</a></li><li><a href="#variant.Floor" title="Floor">Floor</a></li><li><a href="#variant.Function" title="Function">Function</a></li><li><a href="#variant.GroupingSets" title="GroupingSets">GroupingSets</a></li><li><a href="#variant.ILike" title="ILike">ILike</a></li><li><a href="#variant.Identifier" title="Identifier">Identifier</a></li><li><a href="#variant.InList" title="InList">InList</a></li><li><a href="#variant.InSubquery" title="InSubquery">InSubquery</a></li><li><a href="#variant.InUnnest" title="InUnnest">InUnnest</a></li><li><a href="#variant.Interval" title="Interval">Interval</a></li><li><a href="#variant.IsDistinctFrom" title="IsDistinctFrom">IsDistinctFrom</a></li><li><a href="#variant.IsFalse" title="IsFalse">IsFalse</a></li><li><a href="#variant.IsNormalized" title="IsNormalized">IsNormalized</a></li><li><a href="#variant.IsNotDistinctFrom" title="IsNotDistinctFrom">IsNotDistinctFrom</a></li><li><a href="#variant.IsNotFalse" title="IsNotFalse">IsNotFalse</a></li><li><a href="#variant.IsNotNull" title="IsNotNull">IsNotNull</a></li><li><a href="#variant.IsNotTrue" title="IsNotTrue">IsNotTrue</a></li><li><a href="#variant.IsNotUnknown" title="IsNotUnknown">IsNotUnknown</a></li><li><a href="#variant.IsNull" title="IsNull">IsNull</a></li><li><a href="#variant.IsTrue" title="IsTrue">IsTrue</a></li><li><a href="#variant.IsUnknown" title="IsUnknown">IsUnknown</a></li><li><a href="#variant.JsonAccess" title="JsonAccess">JsonAccess</a></li><li><a href="#variant.Lambda" title="Lambda">Lambda</a></li><li><a href="#variant.Like" title="Like">Like</a></li><li><a href="#variant.Map" title="Map">Map</a></li><li><a href="#variant.MatchAgainst" title="MatchAgainst">MatchAgainst</a></li><li><a href="#variant.MemberOf" title="MemberOf">MemberOf</a></li><li><a href="#variant.Named" title="Named">Named</a></li><li><a href="#variant.Nested" title="Nested">Nested</a></li><li><a href="#variant.OuterJoin" title="OuterJoin">OuterJoin</a></li><li><a href="#variant.Overlay" title="Overlay">Overlay</a></li><li><a href="#variant.Position" title="Position">Position</a></li><li><a href="#variant.Prefixed" title="Prefixed">Prefixed</a></li><li><a href="#variant.Prior" title="Prior">Prior</a></li><li><a href="#variant.QualifiedWildcard" title="QualifiedWildcard">QualifiedWildcard</a></li><li><a href="#variant.RLike" title="RLike">RLike</a></li><li><a href="#variant.Rollup" title="Rollup">Rollup</a></li><li><a href="#variant.SimilarTo" title="SimilarTo">SimilarTo</a></li><li><a href="#variant.Struct" title="Struct">Struct</a></li><li><a href="#variant.Subquery" title="Subquery">Subquery</a></li><li><a href="#variant.Substring" title="Substring">Substring</a></li><li><a href="#variant.Trim" title="Trim">Trim</a></li><li><a href="#variant.Tuple" title="Tuple">Tuple</a></li><li><a href="#variant.TypedString" title="TypedString">TypedString</a></li><li><a href="#variant.UnaryOp" title="UnaryOp">UnaryOp</a></li><li><a href="#variant.Value" title="Value">Value</a></li><li><a href="#variant.Wildcard" title="Wildcard">Wildcard</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.value" title="value">value</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-Expr" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-Expr" title="Debug">Debug</a></li><li><a href="#impl-Deserialize%3C'de%3E-for-Expr" title="Deserialize&#60;&#39;de&#62;">Deserialize&#60;&#39;de&#62;</a></li><li><a href="#impl-Display-for-Expr" title="Display">Display</a></li><li><a href="#impl-Eq-for-Expr" title="Eq">Eq</a></li><li><a href="#impl-From%3CExpr%3E-for-FunctionArgExpr" title="From&#60;Expr&#62;">From&#60;Expr&#62;</a></li><li><a href="#impl-Hash-for-Expr" title="Hash">Hash</a></li><li><a href="#impl-Ord-for-Expr" title="Ord">Ord</a></li><li><a href="#impl-PartialEq-for-Expr" title="PartialEq">PartialEq</a></li><li><a href="#impl-PartialOrd-for-Expr" title="PartialOrd">PartialOrd</a></li><li><a href="#impl-Serialize-for-Expr" title="Serialize">Serialize</a></li><li><a href="#impl-Spanned-for-Expr" title="Spanned">Spanned</a></li><li><a href="#impl-StructuralPartialEq-for-Expr" title="StructuralPartialEq">StructuralPartialEq</a></li><li><a href="#impl-Visit-for-Expr" title="Visit">Visit</a></li><li><a href="#impl-VisitMut-for-Expr" title="VisitMut">VisitMut</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-Expr" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Expr" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Expr" title="Send">Send</a></li><li><a href="#impl-Sync-for-Expr" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Expr" title="Unpin">Unpin</a></li><li><a href="#impl-UnsafeUnpin-for-Expr" title="UnsafeUnpin">UnsafeUnpin</a></li><li><a href="#impl-UnwindSafe-for-Expr" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Allocation-for-T" title="Allocation">Allocation</a></li><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Any-for-T-1" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-CallHasher-for-T" title="CallHasher">CallHasher</a></li><li><a href="#impl-CloneAny-for-T" title="CloneAny">CloneAny</a></li><li><a href="#impl-CloneAnySend-for-T" title="CloneAnySend">CloneAnySend</a></li><li><a href="#impl-CloneAnySendSync-for-T" title="CloneAnySendSync">CloneAnySendSync</a></li><li><a href="#impl-CloneAnySync-for-T" title="CloneAnySync">CloneAnySync</a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-Comparable%3CK%3E-for-Q" title="Comparable&#60;K&#62;">Comparable&#60;K&#62;</a></li><li><a href="#impl-Conv-for-T" title="Conv">Conv</a></li><li><a href="#impl-DeserializeOwned-for-T" title="DeserializeOwned">DeserializeOwned</a></li><li><a href="#impl-DynEq-for-T" title="DynEq">DynEq</a></li><li><a href="#impl-DynHash-for-T" title="DynHash">DynHash</a></li><li><a href="#impl-Equivalent%3CK%3E-for-Q" title="Equivalent&#60;K&#62;">Equivalent&#60;K&#62;</a></li><li><a href="#impl-Equivalent%3CK%3E-for-Q-1" title="Equivalent&#60;K&#62;">Equivalent&#60;K&#62;</a></li><li><a href="#impl-ErasedDestructor-for-T" title="ErasedDestructor">ErasedDestructor</a></li><li><a href="#impl-FmtForward-for-T" title="FmtForward">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-FromRef%3CT%3E-for-T" title="FromRef&#60;T&#62;">FromRef&#60;T&#62;</a></li><li><a href="#impl-FutureExt-for-T" title="FutureExt">FutureExt</a></li><li><a href="#impl-Instrument-for-T" title="Instrument">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-IntoEither-for-T" title="IntoEither">IntoEither</a></li><li><a href="#impl-IntoRequest%3CT%3E-for-T" title="IntoRequest&#60;T&#62;">IntoRequest&#60;T&#62;</a></li><li><a href="#impl-IntoRequest%3CT%3E-for-T-1" title="IntoRequest&#60;T&#62;">IntoRequest&#60;T&#62;</a></li><li><a href="#impl-LayerExt%3CL%3E-for-L" title="LayerExt&#60;L&#62;">LayerExt&#60;L&#62;</a></li><li><a href="#impl-LayerExt%3CL%3E-for-L-1" title="LayerExt&#60;L&#62;">LayerExt&#60;L&#62;</a></li><li><a href="#impl-MaybeSend-for-T" title="MaybeSend">MaybeSend</a></li><li><a href="#impl-MaybeSend-for-T-1" title="MaybeSend">MaybeSend</a></li><li><a href="#impl-Pipe-for-T" title="Pipe">Pipe</a></li><li><a href="#impl-PolicyExt-for-T" title="PolicyExt">PolicyExt</a></li><li><a href="#impl-Same-for-T" title="Same">Same</a></li><li><a href="#impl-ServiceExt-for-T" title="ServiceExt">ServiceExt</a></li><li><a href="#impl-Tap-for-T" title="Tap">Tap</a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</a></li><li><a href="#impl-ToString-for-T" title="ToString">ToString</a></li><li><a href="#impl-ToStringFallible-for-T" title="ToStringFallible">ToStringFallible</a></li><li><a href="#impl-TryConv-for-T" title="TryConv">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li><li><a href="#impl-VZip%3CV%3E-for-T" title="VZip&#60;V&#62;">VZip&#60;V&#62;</a></li><li><a href="#impl-WithSubscriber-for-T" title="WithSubscriber">WithSubscriber</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In sql::<wbr>ast</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">sql</a>::<wbr><a href="index.html">ast</a></div><h1>Enum <span class="enum">Expr</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub enum Expr {
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 63 variants</span></summary> Identifier(<a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a>),
CompoundIdentifier(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a>&gt;),
CompoundFieldAccess {
root: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
access_chain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;AccessExpr&gt;,
},
JsonAccess {
value: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
path: JsonPath,
},
IsFalse(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNotFalse(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsTrue(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNotTrue(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNull(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNotNull(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsUnknown(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNotUnknown(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsDistinctFrom(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNotDistinctFrom(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
IsNormalized {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
form: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;NormalizationForm&gt;,
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
InList {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
list: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
InSubquery {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
subquery: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Query&gt;,
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
InUnnest {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
array_expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
Between {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
low: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
high: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
BinaryOp {
left: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
op: <a class="enum" href="enum.BinaryOperator.html" title="enum sql::ast::BinaryOperator">BinaryOperator</a>,
right: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
Like {
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
any: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
escape_char: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>&gt;,
},
ILike {
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
any: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
escape_char: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>&gt;,
},
SimilarTo {
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
escape_char: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>&gt;,
},
RLike {
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
regexp: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
AnyOp {
left: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
compare_op: <a class="enum" href="enum.BinaryOperator.html" title="enum sql::ast::BinaryOperator">BinaryOperator</a>,
right: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
is_some: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
AllOp {
left: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
compare_op: <a class="enum" href="enum.BinaryOperator.html" title="enum sql::ast::BinaryOperator">BinaryOperator</a>,
right: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
UnaryOp {
op: UnaryOperator,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
Convert {
is_try: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
data_type: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.DataType.html" title="enum sql::ast::DataType">DataType</a>&gt;,
charset: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>&gt;,
target_before_value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
styles: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
Cast {
kind: CastKind,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
data_type: <a class="enum" href="enum.DataType.html" title="enum sql::ast::DataType">DataType</a>,
array: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
format: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;CastFormat&gt;,
},
AtTimeZone {
timestamp: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
time_zone: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
Extract {
field: DateTimeField,
syntax: ExtractSyntax,
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
Ceil {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
field: CeilFloorKind,
},
Floor {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
field: CeilFloorKind,
},
Position {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
in: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
Substring {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
substring_from: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
substring_for: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
special: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
shorthand: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
Trim {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
trim_where: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;TrimWhereField&gt;,
trim_what: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
trim_characters: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
},
Overlay {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
overlay_what: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
overlay_from: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
overlay_for: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
},
Collate {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
collation: <a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>,
},
Nested(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
Value(<a class="struct" href="struct.ValueWithSpan.html" title="struct sql::ast::ValueWithSpan">ValueWithSpan</a>),
Prefixed {
prefix: <a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a>,
value: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
},
TypedString(TypedString),
Function(<a class="struct" href="struct.Function.html" title="struct sql::ast::Function">Function</a>),
Case {
case_token: AttachedToken,
end_token: AttachedToken,
operand: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
conditions: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;CaseWhen&gt;,
else_result: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;,
},
Exists {
subquery: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Query&gt;,
negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
},
Subquery(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Query&gt;),
GroupingSets(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;),
Cube(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;),
Rollup(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;),
Tuple(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
Struct {
values: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
fields: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;StructField&gt;,
},
Named {
expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;,
name: <a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a>,
},
Dictionary(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;DictionaryField&gt;),
Map(Map),
Array(Array),
Interval(Interval),
MatchAgainst {
columns: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>&gt;,
match_value: <a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>,
opt_search_modifier: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;SearchModifier&gt;,
},
Wildcard(AttachedToken),
QualifiedWildcard(<a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>, AttachedToken),
OuterJoin(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
Prior(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;),
Lambda(LambdaFunction),
MemberOf(MemberOf),
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An SQL expression of any type.</p>
<h2 id="semantics--type-checking"><a class="doc-anchor" href="#semantics--type-checking">§</a>Semantics / Type Checking</h2>
<p>The parser does not distinguish between expressions of different types
(e.g. boolean vs string). The caller is responsible for detecting and
validating types as necessary (for example <code>WHERE 1</code> vs <code>SELECT 1=1</code>)
See the <a href="https://github.com/apache/datafusion-sqlparser-rs/blob/main/README.md#syntax-vs-semantics">README.md</a> for more details.</p>
<h2 id="equality-and-hashing-does-not-include-source-locations"><a class="doc-anchor" href="#equality-and-hashing-does-not-include-source-locations">§</a>Equality and Hashing Does not Include Source Locations</h2>
<p>The <code>Expr</code> type implements <code>PartialEq</code> and <code>Eq</code> based on the semantic value
of the expression (not bitwise comparison). This means that <code>Expr</code> instances
that are semantically equivalent but have different spans (locations in the
source tree) will compare as equal.</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Identifier" class="variant"><a href="#variant.Identifier" class="anchor">§</a><h3 class="code-header">Identifier(<a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a>)</h3></section><div class="docblock"><p>Identifier e.g. table name or column name</p>
</div><section id="variant.CompoundIdentifier" class="variant"><a href="#variant.CompoundIdentifier" class="anchor">§</a><h3 class="code-header">CompoundIdentifier(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a>&gt;)</h3></section><div class="docblock"><p>Multi-part identifier, e.g. <code>table_alias.column</code> or <code>schema.table.col</code></p>
</div><section id="variant.CompoundFieldAccess" class="variant"><a href="#variant.CompoundFieldAccess" class="anchor">§</a><h3 class="code-header">CompoundFieldAccess</h3></section><div class="docblock"><p>Multi-part expression access.</p>
<p>This structure represents an access chain in structured / nested types
such as maps, arrays, and lists:</p>
<ul>
<li>Array
<ul>
<li>A 1-dim array <code>a[1]</code> will be represented like:
<code>CompoundFieldAccess(Ident('a'), vec![Subscript(1)]</code></li>
<li>A 2-dim array <code>a[1][2]</code> will be represented like:
<code>CompoundFieldAccess(Ident('a'), vec![Subscript(1), Subscript(2)]</code></li>
</ul>
</li>
<li>Map or Struct (Bracket-style)
<ul>
<li>A map <code>a['field1']</code> will be represented like:
<code>CompoundFieldAccess(Ident('a'), vec![Subscript('field')]</code></li>
<li>A 2-dim map <code>a['field1']['field2']</code> will be represented like:
<code>CompoundFieldAccess(Ident('a'), vec![Subscript('field1'), Subscript('field2')]</code></li>
</ul>
</li>
<li>Struct (Dot-style) (only effect when the chain contains both subscript and expr)
<ul>
<li>A struct access <code>a[field1].field2</code> will be represented like:
<code>CompoundFieldAccess(Ident('a'), vec![Subscript('field1'), Ident('field2')]</code></li>
</ul>
</li>
<li>If a struct access likes <code>a.field1.field2</code>, it will be represented by CompoundIdentifier([a, field1, field2])</li>
</ul>
</div><div class="sub-variant" id="variant.CompoundFieldAccess.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.CompoundFieldAccess.field.root" class="section-header"><a href="#variant.CompoundFieldAccess.field.root" class="anchor field">§</a><code>root: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The base expression being accessed.</p>
</div></div><div class="sub-variant-field"><span id="variant.CompoundFieldAccess.field.access_chain" class="section-header"><a href="#variant.CompoundFieldAccess.field.access_chain" class="anchor field">§</a><code>access_chain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;AccessExpr&gt;</code></span><div class="docblock"><p>Sequence of access operations (subscript or identifier accesses).</p>
</div></div></div><section id="variant.JsonAccess" class="variant"><a href="#variant.JsonAccess" class="anchor">§</a><h3 class="code-header">JsonAccess</h3></section><div class="docblock"><p>Access data nested in a value containing semi-structured data, such as
the <code>VARIANT</code> type on Snowflake. for example <code>src:customer[0].name</code>.</p>
<p>See <a href="https://docs.snowflake.com/en/user-guide/querying-semistructured">https://docs.snowflake.com/en/user-guide/querying-semistructured</a>.
See <a href="https://docs.databricks.com/en/sql/language-manual/functions/colonsign.html">https://docs.databricks.com/en/sql/language-manual/functions/colonsign.html</a>.</p>
</div><div class="sub-variant" id="variant.JsonAccess.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.JsonAccess.field.value" class="section-header"><a href="#variant.JsonAccess.field.value" class="anchor field">§</a><code>value: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The value being queried.</p>
</div></div><div class="sub-variant-field"><span id="variant.JsonAccess.field.path" class="section-header"><a href="#variant.JsonAccess.field.path" class="anchor field">§</a><code>path: JsonPath</code></span><div class="docblock"><p>The path to the data to extract.</p>
</div></div></div><section id="variant.IsFalse" class="variant"><a href="#variant.IsFalse" class="anchor">§</a><h3 class="code-header">IsFalse(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS FALSE</code> operator</p>
</div><section id="variant.IsNotFalse" class="variant"><a href="#variant.IsNotFalse" class="anchor">§</a><h3 class="code-header">IsNotFalse(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS NOT FALSE</code> operator</p>
</div><section id="variant.IsTrue" class="variant"><a href="#variant.IsTrue" class="anchor">§</a><h3 class="code-header">IsTrue(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS TRUE</code> operator</p>
</div><section id="variant.IsNotTrue" class="variant"><a href="#variant.IsNotTrue" class="anchor">§</a><h3 class="code-header">IsNotTrue(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS NOT TRUE</code> operator</p>
</div><section id="variant.IsNull" class="variant"><a href="#variant.IsNull" class="anchor">§</a><h3 class="code-header">IsNull(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS NULL</code> operator</p>
</div><section id="variant.IsNotNull" class="variant"><a href="#variant.IsNotNull" class="anchor">§</a><h3 class="code-header">IsNotNull(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS NOT NULL</code> operator</p>
</div><section id="variant.IsUnknown" class="variant"><a href="#variant.IsUnknown" class="anchor">§</a><h3 class="code-header">IsUnknown(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS UNKNOWN</code> operator</p>
</div><section id="variant.IsNotUnknown" class="variant"><a href="#variant.IsNotUnknown" class="anchor">§</a><h3 class="code-header">IsNotUnknown(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS NOT UNKNOWN</code> operator</p>
</div><section id="variant.IsDistinctFrom" class="variant"><a href="#variant.IsDistinctFrom" class="anchor">§</a><h3 class="code-header">IsDistinctFrom(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS DISTINCT FROM</code> operator</p>
</div><section id="variant.IsNotDistinctFrom" class="variant"><a href="#variant.IsNotDistinctFrom" class="anchor">§</a><h3 class="code-header">IsNotDistinctFrom(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p><code>IS NOT DISTINCT FROM</code> operator</p>
</div><section id="variant.IsNormalized" class="variant"><a href="#variant.IsNormalized" class="anchor">§</a><h3 class="code-header">IsNormalized</h3></section><div class="docblock"><p><code>&lt;expr&gt; IS [ NOT ] [ form ] NORMALIZED</code></p>
</div><div class="sub-variant" id="variant.IsNormalized.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.IsNormalized.field.expr" class="section-header"><a href="#variant.IsNormalized.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression being tested.</p>
</div></div><div class="sub-variant-field"><span id="variant.IsNormalized.field.form" class="section-header"><a href="#variant.IsNormalized.field.form" class="anchor field">§</a><code>form: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;NormalizationForm&gt;</code></span><div class="docblock"><p>Optional normalization <code>form</code> (e.g., NFC, NFD).</p>
</div></div><div class="sub-variant-field"><span id="variant.IsNormalized.field.negated" class="section-header"><a href="#variant.IsNormalized.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when <code>NOT</code> is present.</p>
</div></div></div><section id="variant.InList" class="variant"><a href="#variant.InList" class="anchor">§</a><h3 class="code-header">InList</h3></section><div class="docblock"><p><code>[ NOT ] IN (val1, val2, ...)</code></p>
</div><div class="sub-variant" id="variant.InList.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InList.field.expr" class="section-header"><a href="#variant.InList.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Left-hand expression to test for membership.</p>
</div></div><div class="sub-variant-field"><span id="variant.InList.field.list" class="section-header"><a href="#variant.InList.field.list" class="anchor field">§</a><code>list: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Literal list of expressions to check against.</p>
</div></div><div class="sub-variant-field"><span id="variant.InList.field.negated" class="section-header"><a href="#variant.InList.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when the <code>NOT</code> modifier is present.</p>
</div></div></div><section id="variant.InSubquery" class="variant"><a href="#variant.InSubquery" class="anchor">§</a><h3 class="code-header">InSubquery</h3></section><div class="docblock"><p><code>[ NOT ] IN (SELECT ...)</code></p>
</div><div class="sub-variant" id="variant.InSubquery.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InSubquery.field.expr" class="section-header"><a href="#variant.InSubquery.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Left-hand expression to test for membership.</p>
</div></div><div class="sub-variant-field"><span id="variant.InSubquery.field.subquery" class="section-header"><a href="#variant.InSubquery.field.subquery" class="anchor field">§</a><code>subquery: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Query&gt;</code></span><div class="docblock"><p>The subquery providing the candidate values.</p>
</div></div><div class="sub-variant-field"><span id="variant.InSubquery.field.negated" class="section-header"><a href="#variant.InSubquery.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when the <code>NOT</code> modifier is present.</p>
</div></div></div><section id="variant.InUnnest" class="variant"><a href="#variant.InUnnest" class="anchor">§</a><h3 class="code-header">InUnnest</h3></section><div class="docblock"><p><code>[ NOT ] IN UNNEST(array_expression)</code></p>
</div><div class="sub-variant" id="variant.InUnnest.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.InUnnest.field.expr" class="section-header"><a href="#variant.InUnnest.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Left-hand expression to test for membership.</p>
</div></div><div class="sub-variant-field"><span id="variant.InUnnest.field.array_expr" class="section-header"><a href="#variant.InUnnest.field.array_expr" class="anchor field">§</a><code>array_expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Array expression being unnested.</p>
</div></div><div class="sub-variant-field"><span id="variant.InUnnest.field.negated" class="section-header"><a href="#variant.InUnnest.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when the <code>NOT</code> modifier is present.</p>
</div></div></div><section id="variant.Between" class="variant"><a href="#variant.Between" class="anchor">§</a><h3 class="code-header">Between</h3></section><div class="docblock"><p><code>&lt;expr&gt; [ NOT ] BETWEEN &lt;low&gt; AND &lt;high&gt;</code></p>
</div><div class="sub-variant" id="variant.Between.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Between.field.expr" class="section-header"><a href="#variant.Between.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression being compared.</p>
</div></div><div class="sub-variant-field"><span id="variant.Between.field.negated" class="section-header"><a href="#variant.Between.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when the <code>NOT</code> modifier is present.</p>
</div></div><div class="sub-variant-field"><span id="variant.Between.field.low" class="section-header"><a href="#variant.Between.field.low" class="anchor field">§</a><code>low: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Lower bound.</p>
</div></div><div class="sub-variant-field"><span id="variant.Between.field.high" class="section-header"><a href="#variant.Between.field.high" class="anchor field">§</a><code>high: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Upper bound.</p>
</div></div></div><section id="variant.BinaryOp" class="variant"><a href="#variant.BinaryOp" class="anchor">§</a><h3 class="code-header">BinaryOp</h3></section><div class="docblock"><p>Binary operation e.g. <code>1 + 1</code> or <code>foo &gt; bar</code></p>
</div><div class="sub-variant" id="variant.BinaryOp.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.BinaryOp.field.left" class="section-header"><a href="#variant.BinaryOp.field.left" class="anchor field">§</a><code>left: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Left operand.</p>
</div></div><div class="sub-variant-field"><span id="variant.BinaryOp.field.op" class="section-header"><a href="#variant.BinaryOp.field.op" class="anchor field">§</a><code>op: <a class="enum" href="enum.BinaryOperator.html" title="enum sql::ast::BinaryOperator">BinaryOperator</a></code></span><div class="docblock"><p>Operator between operands.</p>
</div></div><div class="sub-variant-field"><span id="variant.BinaryOp.field.right" class="section-header"><a href="#variant.BinaryOp.field.right" class="anchor field">§</a><code>right: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Right operand.</p>
</div></div></div><section id="variant.Like" class="variant"><a href="#variant.Like" class="anchor">§</a><h3 class="code-header">Like</h3></section><div class="docblock"><p><code>[NOT] LIKE &lt;pattern&gt; [ESCAPE &lt;escape_character&gt;]</code></p>
</div><div class="sub-variant" id="variant.Like.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Like.field.negated" class="section-header"><a href="#variant.Like.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when <code>NOT</code> is present.</p>
</div></div><div class="sub-variant-field"><span id="variant.Like.field.any" class="section-header"><a href="#variant.Like.field.any" class="anchor field">§</a><code>any: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Snowflake supports the ANY keyword to match against a list of patterns
<a href="https://docs.snowflake.com/en/sql-reference/functions/like_any">https://docs.snowflake.com/en/sql-reference/functions/like_any</a></p>
</div></div><div class="sub-variant-field"><span id="variant.Like.field.expr" class="section-header"><a href="#variant.Like.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to match.</p>
</div></div><div class="sub-variant-field"><span id="variant.Like.field.pattern" class="section-header"><a href="#variant.Like.field.pattern" class="anchor field">§</a><code>pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Pattern expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.Like.field.escape_char" class="section-header"><a href="#variant.Like.field.escape_char" class="anchor field">§</a><code>escape_char: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>&gt;</code></span><div class="docblock"><p>Optional escape character.</p>
</div></div></div><section id="variant.ILike" class="variant"><a href="#variant.ILike" class="anchor">§</a><h3 class="code-header">ILike</h3></section><div class="docblock"><p><code>ILIKE</code> (case-insensitive <code>LIKE</code>)</p>
</div><div class="sub-variant" id="variant.ILike.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ILike.field.negated" class="section-header"><a href="#variant.ILike.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when <code>NOT</code> is present.</p>
</div></div><div class="sub-variant-field"><span id="variant.ILike.field.any" class="section-header"><a href="#variant.ILike.field.any" class="anchor field">§</a><code>any: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Snowflake supports the ANY keyword to match against a list of patterns
<a href="https://docs.snowflake.com/en/sql-reference/functions/like_any">https://docs.snowflake.com/en/sql-reference/functions/like_any</a></p>
</div></div><div class="sub-variant-field"><span id="variant.ILike.field.expr" class="section-header"><a href="#variant.ILike.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to match.</p>
</div></div><div class="sub-variant-field"><span id="variant.ILike.field.pattern" class="section-header"><a href="#variant.ILike.field.pattern" class="anchor field">§</a><code>pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Pattern expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.ILike.field.escape_char" class="section-header"><a href="#variant.ILike.field.escape_char" class="anchor field">§</a><code>escape_char: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>&gt;</code></span><div class="docblock"><p>Optional escape character.</p>
</div></div></div><section id="variant.SimilarTo" class="variant"><a href="#variant.SimilarTo" class="anchor">§</a><h3 class="code-header">SimilarTo</h3></section><div class="docblock"><p><code>SIMILAR TO</code> regex</p>
</div><div class="sub-variant" id="variant.SimilarTo.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.SimilarTo.field.negated" class="section-header"><a href="#variant.SimilarTo.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when <code>NOT</code> is present.</p>
</div></div><div class="sub-variant-field"><span id="variant.SimilarTo.field.expr" class="section-header"><a href="#variant.SimilarTo.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to test.</p>
</div></div><div class="sub-variant-field"><span id="variant.SimilarTo.field.pattern" class="section-header"><a href="#variant.SimilarTo.field.pattern" class="anchor field">§</a><code>pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Pattern expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.SimilarTo.field.escape_char" class="section-header"><a href="#variant.SimilarTo.field.escape_char" class="anchor field">§</a><code>escape_char: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a>&gt;</code></span><div class="docblock"><p>Optional escape character.</p>
</div></div></div><section id="variant.RLike" class="variant"><a href="#variant.RLike" class="anchor">§</a><h3 class="code-header">RLike</h3></section><div class="docblock"><p>MySQL: <code>RLIKE</code> regex or <code>REGEXP</code> regex</p>
</div><div class="sub-variant" id="variant.RLike.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.RLike.field.negated" class="section-header"><a href="#variant.RLike.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when <code>NOT</code> is present.</p>
</div></div><div class="sub-variant-field"><span id="variant.RLike.field.expr" class="section-header"><a href="#variant.RLike.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to test.</p>
</div></div><div class="sub-variant-field"><span id="variant.RLike.field.pattern" class="section-header"><a href="#variant.RLike.field.pattern" class="anchor field">§</a><code>pattern: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Pattern expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.RLike.field.regexp" class="section-header"><a href="#variant.RLike.field.regexp" class="anchor field">§</a><code>regexp: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>true for REGEXP, false for RLIKE (no difference in semantics)</p>
</div></div></div><section id="variant.AnyOp" class="variant"><a href="#variant.AnyOp" class="anchor">§</a><h3 class="code-header">AnyOp</h3></section><div class="docblock"><p><code>ANY</code> operation e.g. <code>foo &gt; ANY(bar)</code>, comparison operator is one of <code>[=, &gt;, &lt;, =&gt;, =&lt;, !=]</code>
<a href="https://docs.snowflake.com/en/sql-reference/operators-subquery#all-any">https://docs.snowflake.com/en/sql-reference/operators-subquery#all-any</a></p>
</div><div class="sub-variant" id="variant.AnyOp.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.AnyOp.field.left" class="section-header"><a href="#variant.AnyOp.field.left" class="anchor field">§</a><code>left: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Left operand.</p>
</div></div><div class="sub-variant-field"><span id="variant.AnyOp.field.compare_op" class="section-header"><a href="#variant.AnyOp.field.compare_op" class="anchor field">§</a><code>compare_op: <a class="enum" href="enum.BinaryOperator.html" title="enum sql::ast::BinaryOperator">BinaryOperator</a></code></span><div class="docblock"><p>Comparison operator.</p>
</div></div><div class="sub-variant-field"><span id="variant.AnyOp.field.right" class="section-header"><a href="#variant.AnyOp.field.right" class="anchor field">§</a><code>right: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Right-hand subquery expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.AnyOp.field.is_some" class="section-header"><a href="#variant.AnyOp.field.is_some" class="anchor field">§</a><code>is_some: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>ANY and SOME are synonymous: <a href="https://docs.cloudera.com/cdw-runtime/cloud/using-hiveql/topics/hive_comparison_predicates.html">https://docs.cloudera.com/cdw-runtime/cloud/using-hiveql/topics/hive_comparison_predicates.html</a></p>
</div></div></div><section id="variant.AllOp" class="variant"><a href="#variant.AllOp" class="anchor">§</a><h3 class="code-header">AllOp</h3></section><div class="docblock"><p><code>ALL</code> operation e.g. <code>foo &gt; ALL(bar)</code>, comparison operator is one of <code>[=, &gt;, &lt;, =&gt;, =&lt;, !=]</code>
<a href="https://docs.snowflake.com/en/sql-reference/operators-subquery#all-any">https://docs.snowflake.com/en/sql-reference/operators-subquery#all-any</a></p>
</div><div class="sub-variant" id="variant.AllOp.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.AllOp.field.left" class="section-header"><a href="#variant.AllOp.field.left" class="anchor field">§</a><code>left: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Left operand.</p>
</div></div><div class="sub-variant-field"><span id="variant.AllOp.field.compare_op" class="section-header"><a href="#variant.AllOp.field.compare_op" class="anchor field">§</a><code>compare_op: <a class="enum" href="enum.BinaryOperator.html" title="enum sql::ast::BinaryOperator">BinaryOperator</a></code></span><div class="docblock"><p>Comparison operator.</p>
</div></div><div class="sub-variant-field"><span id="variant.AllOp.field.right" class="section-header"><a href="#variant.AllOp.field.right" class="anchor field">§</a><code>right: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Right-hand subquery expression.</p>
</div></div></div><section id="variant.UnaryOp" class="variant"><a href="#variant.UnaryOp" class="anchor">§</a><h3 class="code-header">UnaryOp</h3></section><div class="docblock"><p>Unary operation e.g. <code>NOT foo</code></p>
</div><div class="sub-variant" id="variant.UnaryOp.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.UnaryOp.field.op" class="section-header"><a href="#variant.UnaryOp.field.op" class="anchor field">§</a><code>op: UnaryOperator</code></span><div class="docblock"><p>The unary operator (e.g., <code>NOT</code>, <code>-</code>).</p>
</div></div><div class="sub-variant-field"><span id="variant.UnaryOp.field.expr" class="section-header"><a href="#variant.UnaryOp.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Operand expression.</p>
</div></div></div><section id="variant.Convert" class="variant"><a href="#variant.Convert" class="anchor">§</a><h3 class="code-header">Convert</h3></section><div class="docblock"><p>CONVERT a value to a different data type or character encoding. e.g. <code>CONVERT(foo USING utf8mb4)</code></p>
</div><div class="sub-variant" id="variant.Convert.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Convert.field.is_try" class="section-header"><a href="#variant.Convert.field.is_try" class="anchor field">§</a><code>is_try: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>CONVERT (false) or TRY_CONVERT (true)
<a href="https://learn.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-ver16">https://learn.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-ver16</a></p>
</div></div><div class="sub-variant-field"><span id="variant.Convert.field.expr" class="section-header"><a href="#variant.Convert.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The expression to convert.</p>
</div></div><div class="sub-variant-field"><span id="variant.Convert.field.data_type" class="section-header"><a href="#variant.Convert.field.data_type" class="anchor field">§</a><code>data_type: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.DataType.html" title="enum sql::ast::DataType">DataType</a>&gt;</code></span><div class="docblock"><p>The target data type, if provided.</p>
</div></div><div class="sub-variant-field"><span id="variant.Convert.field.charset" class="section-header"><a href="#variant.Convert.field.charset" class="anchor field">§</a><code>charset: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>&gt;</code></span><div class="docblock"><p>Optional target character encoding (e.g., <code>utf8mb4</code>).</p>
</div></div><div class="sub-variant-field"><span id="variant.Convert.field.target_before_value" class="section-header"><a href="#variant.Convert.field.target_before_value" class="anchor field">§</a><code>target_before_value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><code>true</code> when target precedes the value (MSSQL syntax).</p>
</div></div><div class="sub-variant-field"><span id="variant.Convert.field.styles" class="section-header"><a href="#variant.Convert.field.styles" class="anchor field">§</a><code>styles: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>How to translate the expression.</p>
</div></div></div><section id="variant.Cast" class="variant"><a href="#variant.Cast" class="anchor">§</a><h3 class="code-header">Cast</h3></section><div class="docblock"><p><code>CAST</code> an expression to a different data type e.g. <code>CAST(foo AS VARCHAR(123))</code></p>
</div><div class="sub-variant" id="variant.Cast.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Cast.field.kind" class="section-header"><a href="#variant.Cast.field.kind" class="anchor field">§</a><code>kind: CastKind</code></span><div class="docblock"><p>The cast kind (e.g., <code>CAST</code>, <code>TRY_CAST</code>).</p>
</div></div><div class="sub-variant-field"><span id="variant.Cast.field.expr" class="section-header"><a href="#variant.Cast.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression being cast.</p>
</div></div><div class="sub-variant-field"><span id="variant.Cast.field.data_type" class="section-header"><a href="#variant.Cast.field.data_type" class="anchor field">§</a><code>data_type: <a class="enum" href="enum.DataType.html" title="enum sql::ast::DataType">DataType</a></code></span><div class="docblock"><p>Target data type.</p>
</div></div><div class="sub-variant-field"><span id="variant.Cast.field.array" class="section-header"><a href="#variant.Cast.field.array" class="anchor field">§</a><code>array: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p><a href="https://dev.mysql.com/doc/refman/8.4/en/cast-functions.html#function_cast">MySQL</a> allows CAST(… AS type ARRAY) in functional index definitions for InnoDB
multi-valued indices. Its not really a datatype, and is only allowed in <code>CAST</code> in key
specifications, so its a flag here.</p>
</div></div><div class="sub-variant-field"><span id="variant.Cast.field.format" class="section-header"><a href="#variant.Cast.field.format" class="anchor field">§</a><code>format: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;CastFormat&gt;</code></span><div class="docblock"><p>Optional CAST(string_expression AS type FORMAT format_string_expression) as used by <a href="https://cloud.google.com/bigquery/docs/reference/standard-sql/format-elements#formatting_syntax">BigQuery</a></p>
</div></div></div><section id="variant.AtTimeZone" class="variant"><a href="#variant.AtTimeZone" class="anchor">§</a><h3 class="code-header">AtTimeZone</h3></section><div class="docblock"><p>AT a timestamp to a different timezone e.g. <code>FROM_UNIXTIME(0) AT TIME ZONE 'UTC-06:00'</code></p>
</div><div class="sub-variant" id="variant.AtTimeZone.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.AtTimeZone.field.timestamp" class="section-header"><a href="#variant.AtTimeZone.field.timestamp" class="anchor field">§</a><code>timestamp: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Timestamp expression to shift.</p>
</div></div><div class="sub-variant-field"><span id="variant.AtTimeZone.field.time_zone" class="section-header"><a href="#variant.AtTimeZone.field.time_zone" class="anchor field">§</a><code>time_zone: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Time zone expression to apply.</p>
</div></div></div><section id="variant.Extract" class="variant"><a href="#variant.Extract" class="anchor">§</a><h3 class="code-header">Extract</h3></section><div class="docblock"><p>Extract a field from a timestamp e.g. <code>EXTRACT(MONTH FROM foo)</code>
Or <code>EXTRACT(MONTH, foo)</code></p>
<p>Syntax:</p>
<div class="example-wrap"><pre class="language-sql"><code>EXTRACT(DateTimeField FROM &lt;expr&gt;) | EXTRACT(DateTimeField, &lt;expr&gt;)</code></pre></div></div><div class="sub-variant" id="variant.Extract.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Extract.field.field" class="section-header"><a href="#variant.Extract.field.field" class="anchor field">§</a><code>field: DateTimeField</code></span><div class="docblock"><p>Which datetime field is being extracted.</p>
</div></div><div class="sub-variant-field"><span id="variant.Extract.field.syntax" class="section-header"><a href="#variant.Extract.field.syntax" class="anchor field">§</a><code>syntax: ExtractSyntax</code></span><div class="docblock"><p>Syntax variant used (<code>From</code> or <code>Comma</code>).</p>
</div></div><div class="sub-variant-field"><span id="variant.Extract.field.expr" class="section-header"><a href="#variant.Extract.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to extract from.</p>
</div></div></div><section id="variant.Ceil" class="variant"><a href="#variant.Ceil" class="anchor">§</a><h3 class="code-header">Ceil</h3></section><div class="docblock"><div class="example-wrap"><pre class="language-sql"><code>CEIL(&lt;expr&gt; [TO DateTimeField])</code></pre></div><div class="example-wrap"><pre class="language-sql"><code>CEIL( &lt;input_expr&gt; [, &lt;scale_expr&gt; ] )</code></pre></div></div><div class="sub-variant" id="variant.Ceil.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Ceil.field.expr" class="section-header"><a href="#variant.Ceil.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to ceil.</p>
</div></div><div class="sub-variant-field"><span id="variant.Ceil.field.field" class="section-header"><a href="#variant.Ceil.field.field" class="anchor field">§</a><code>field: CeilFloorKind</code></span><div class="docblock"><p>The CEIL/FLOOR kind (datetime field or scale).</p>
</div></div></div><section id="variant.Floor" class="variant"><a href="#variant.Floor" class="anchor">§</a><h3 class="code-header">Floor</h3></section><div class="docblock"><div class="example-wrap"><pre class="language-sql"><code>FLOOR(&lt;expr&gt; [TO DateTimeField])</code></pre></div><div class="example-wrap"><pre class="language-sql"><code>FLOOR( &lt;input_expr&gt; [, &lt;scale_expr&gt; ] )</code></pre></div></div><div class="sub-variant" id="variant.Floor.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Floor.field.expr" class="section-header"><a href="#variant.Floor.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to floor.</p>
</div></div><div class="sub-variant-field"><span id="variant.Floor.field.field" class="section-header"><a href="#variant.Floor.field.field" class="anchor field">§</a><code>field: CeilFloorKind</code></span><div class="docblock"><p>The CEIL/FLOOR kind (datetime field or scale).</p>
</div></div></div><section id="variant.Position" class="variant"><a href="#variant.Position" class="anchor">§</a><h3 class="code-header">Position</h3></section><div class="docblock"><div class="example-wrap"><pre class="language-sql"><code>POSITION(&lt;expr&gt; in &lt;expr&gt;)</code></pre></div></div><div class="sub-variant" id="variant.Position.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Position.field.expr" class="section-header"><a href="#variant.Position.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to search for.</p>
</div></div><div class="sub-variant-field"><span id="variant.Position.field.in" class="section-header"><a href="#variant.Position.field.in" class="anchor field">§</a><code>in: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Expression to search in.</p>
</div></div></div><section id="variant.Substring" class="variant"><a href="#variant.Substring" class="anchor">§</a><h3 class="code-header">Substring</h3></section><div class="docblock"><div class="example-wrap"><pre class="language-sql"><code>SUBSTRING(&lt;expr&gt; [FROM &lt;expr&gt;] [FOR &lt;expr&gt;])</code></pre></div>
<p>or</p>
<div class="example-wrap"><pre class="language-sql"><code>SUBSTRING(&lt;expr&gt;, &lt;expr&gt;, &lt;expr&gt;)</code></pre></div></div><div class="sub-variant" id="variant.Substring.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Substring.field.expr" class="section-header"><a href="#variant.Substring.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Source expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.Substring.field.substring_from" class="section-header"><a href="#variant.Substring.field.substring_from" class="anchor field">§</a><code>substring_from: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional <code>FROM</code> expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.Substring.field.substring_for" class="section-header"><a href="#variant.Substring.field.substring_for" class="anchor field">§</a><code>substring_for: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional <code>FOR</code> expression.</p>
</div></div><div class="sub-variant-field"><span id="variant.Substring.field.special" class="section-header"><a href="#variant.Substring.field.special" class="anchor field">§</a><code>special: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>false if the expression is represented using the <code>SUBSTRING(expr [FROM start] [FOR len])</code> syntax
true if the expression is represented using the <code>SUBSTRING(expr, start, len)</code> syntax
This flag is used for formatting.</p>
</div></div><div class="sub-variant-field"><span id="variant.Substring.field.shorthand" class="section-header"><a href="#variant.Substring.field.shorthand" class="anchor field">§</a><code>shorthand: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>true if the expression is represented using the <code>SUBSTR</code> shorthand
This flag is used for formatting.</p>
</div></div></div><section id="variant.Trim" class="variant"><a href="#variant.Trim" class="anchor">§</a><h3 class="code-header">Trim</h3></section><div class="docblock"><div class="example-wrap"><pre class="language-sql"><code>TRIM([BOTH | LEADING | TRAILING] [&lt;expr&gt; FROM] &lt;expr&gt;)
TRIM(&lt;expr&gt;)
TRIM(&lt;expr&gt;, [, characters]) -- only Snowflake or Bigquery</code></pre></div></div><div class="sub-variant" id="variant.Trim.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Trim.field.expr" class="section-header"><a href="#variant.Trim.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The expression to trim from.</p>
</div></div><div class="sub-variant-field"><span id="variant.Trim.field.trim_where" class="section-header"><a href="#variant.Trim.field.trim_where" class="anchor field">§</a><code>trim_where: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;TrimWhereField&gt;</code></span><div class="docblock"><p>Which side to trim: <code>BOTH</code>, <code>LEADING</code>, or <code>TRAILING</code>.</p>
</div></div><div class="sub-variant-field"><span id="variant.Trim.field.trim_what" class="section-header"><a href="#variant.Trim.field.trim_what" class="anchor field">§</a><code>trim_what: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional expression specifying what to trim from the value.</p>
</div></div><div class="sub-variant-field"><span id="variant.Trim.field.trim_characters" class="section-header"><a href="#variant.Trim.field.trim_characters" class="anchor field">§</a><code>trim_characters: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional list of characters to trim (dialect-specific).</p>
</div></div></div><section id="variant.Overlay" class="variant"><a href="#variant.Overlay" class="anchor">§</a><h3 class="code-header">Overlay</h3></section><div class="docblock"><div class="example-wrap"><pre class="language-sql"><code>OVERLAY(&lt;expr&gt; PLACING &lt;expr&gt; FROM &lt;expr&gt;[ FOR &lt;expr&gt; ]</code></pre></div></div><div class="sub-variant" id="variant.Overlay.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Overlay.field.expr" class="section-header"><a href="#variant.Overlay.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The target expression being overlayed.</p>
</div></div><div class="sub-variant-field"><span id="variant.Overlay.field.overlay_what" class="section-header"><a href="#variant.Overlay.field.overlay_what" class="anchor field">§</a><code>overlay_what: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The expression to place into the target.</p>
</div></div><div class="sub-variant-field"><span id="variant.Overlay.field.overlay_from" class="section-header"><a href="#variant.Overlay.field.overlay_from" class="anchor field">§</a><code>overlay_from: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The <code>FROM</code> position expression indicating where to start overlay.</p>
</div></div><div class="sub-variant-field"><span id="variant.Overlay.field.overlay_for" class="section-header"><a href="#variant.Overlay.field.overlay_for" class="anchor field">§</a><code>overlay_for: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional <code>FOR</code> length expression limiting the overlay span.</p>
</div></div></div><section id="variant.Collate" class="variant"><a href="#variant.Collate" class="anchor">§</a><h3 class="code-header">Collate</h3></section><div class="docblock"><p><code>expr COLLATE collation</code></p>
</div><div class="sub-variant" id="variant.Collate.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Collate.field.expr" class="section-header"><a href="#variant.Collate.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The expression being collated.</p>
</div></div><div class="sub-variant-field"><span id="variant.Collate.field.collation" class="section-header"><a href="#variant.Collate.field.collation" class="anchor field">§</a><code>collation: <a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a></code></span><div class="docblock"><p>The collation name to apply to the expression.</p>
</div></div></div><section id="variant.Nested" class="variant"><a href="#variant.Nested" class="anchor">§</a><h3 class="code-header">Nested(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p>Nested expression e.g. <code>(foo &gt; bar)</code> or <code>(1)</code></p>
</div><section id="variant.Value" class="variant"><a href="#variant.Value" class="anchor">§</a><h3 class="code-header">Value(<a class="struct" href="struct.ValueWithSpan.html" title="struct sql::ast::ValueWithSpan">ValueWithSpan</a>)</h3></section><div class="docblock"><p>A literal value, such as string, number, date or NULL</p>
</div><section id="variant.Prefixed" class="variant"><a href="#variant.Prefixed" class="anchor">§</a><h3 class="code-header">Prefixed</h3></section><div class="docblock"><p>Prefixed expression, e.g. introducer strings, projection prefix
<a href="https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html">https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</a>
<a href="https://docs.snowflake.com/en/sql-reference/constructs/connect-by">https://docs.snowflake.com/en/sql-reference/constructs/connect-by</a></p>
</div><div class="sub-variant" id="variant.Prefixed.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Prefixed.field.prefix" class="section-header"><a href="#variant.Prefixed.field.prefix" class="anchor field">§</a><code>prefix: <a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a></code></span><div class="docblock"><p>The prefix identifier (introducer or projection prefix).</p>
</div></div><div class="sub-variant-field"><span id="variant.Prefixed.field.value" class="section-header"><a href="#variant.Prefixed.field.value" class="anchor field">§</a><code>value: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The value expression being prefixed.
Hint: you can unwrap the string value using <code>value.into_string()</code>.</p>
</div></div></div><section id="variant.TypedString" class="variant"><a href="#variant.TypedString" class="anchor">§</a><h3 class="code-header">TypedString(TypedString)</h3></section><div class="docblock"><p>A constant of form <code>&lt;data_type&gt; 'value'</code>.
This can represent ANSI SQL <code>DATE</code>, <code>TIME</code>, and <code>TIMESTAMP</code> literals (such as <code>DATE '2020-01-01'</code>),
as well as constants of other types (a non-standard PostgreSQL extension).</p>
</div><section id="variant.Function" class="variant"><a href="#variant.Function" class="anchor">§</a><h3 class="code-header">Function(<a class="struct" href="struct.Function.html" title="struct sql::ast::Function">Function</a>)</h3></section><div class="docblock"><p>Scalar function call e.g. <code>LEFT(foo, 5)</code></p>
</div><section id="variant.Case" class="variant"><a href="#variant.Case" class="anchor">§</a><h3 class="code-header">Case</h3></section><div class="docblock"><p><code>CASE [&lt;operand&gt;] WHEN &lt;condition&gt; THEN &lt;result&gt; ... [ELSE &lt;result&gt;] END</code></p>
<p>Note we only recognize a complete single expression as <code>&lt;condition&gt;</code>,
not <code>&lt; 0</code> nor <code>1, 2, 3</code> as allowed in a <code>&lt;simple when clause&gt;</code> per
<a href="https://jakewheat.github.io/sql-overview/sql-2011-foundation-grammar.html#simple-when-clause">https://jakewheat.github.io/sql-overview/sql-2011-foundation-grammar.html#simple-when-clause</a></p>
</div><div class="sub-variant" id="variant.Case.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Case.field.case_token" class="section-header"><a href="#variant.Case.field.case_token" class="anchor field">§</a><code>case_token: AttachedToken</code></span><div class="docblock"><p>The attached <code>CASE</code> token (keeps original spacing/comments).</p>
</div></div><div class="sub-variant-field"><span id="variant.Case.field.end_token" class="section-header"><a href="#variant.Case.field.end_token" class="anchor field">§</a><code>end_token: AttachedToken</code></span><div class="docblock"><p>The attached <code>END</code> token (keeps original spacing/comments).</p>
</div></div><div class="sub-variant-field"><span id="variant.Case.field.operand" class="section-header"><a href="#variant.Case.field.operand" class="anchor field">§</a><code>operand: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional operand expression after <code>CASE</code> (for simple CASE).</p>
</div></div><div class="sub-variant-field"><span id="variant.Case.field.conditions" class="section-header"><a href="#variant.Case.field.conditions" class="anchor field">§</a><code>conditions: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;CaseWhen&gt;</code></span><div class="docblock"><p>The <code>WHEN ... THEN</code> conditions and results.</p>
</div></div><div class="sub-variant-field"><span id="variant.Case.field.else_result" class="section-header"><a href="#variant.Case.field.else_result" class="anchor field">§</a><code>else_result: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;</code></span><div class="docblock"><p>Optional <code>ELSE</code> result expression.</p>
</div></div></div><section id="variant.Exists" class="variant"><a href="#variant.Exists" class="anchor">§</a><h3 class="code-header">Exists</h3></section><div class="docblock"><p>An exists expression <code>[ NOT ] EXISTS(SELECT ...)</code>, used in expressions like
<code>WHERE [ NOT ] EXISTS (SELECT ...)</code>.</p>
</div><div class="sub-variant" id="variant.Exists.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Exists.field.subquery" class="section-header"><a href="#variant.Exists.field.subquery" class="anchor field">§</a><code>subquery: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Query&gt;</code></span><div class="docblock"><p>The subquery checked by <code>EXISTS</code>.</p>
</div></div><div class="sub-variant-field"><span id="variant.Exists.field.negated" class="section-header"><a href="#variant.Exists.field.negated" class="anchor field">§</a><code>negated: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the <code>EXISTS</code> is negated (<code>NOT EXISTS</code>).</p>
</div></div></div><section id="variant.Subquery" class="variant"><a href="#variant.Subquery" class="anchor">§</a><h3 class="code-header">Subquery(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Query&gt;)</h3></section><div class="docblock"><p>A parenthesized subquery <code>(SELECT ...)</code>, used in expression like
<code>SELECT (subquery) AS x</code> or <code>WHERE (subquery) = x</code></p>
</div><section id="variant.GroupingSets" class="variant"><a href="#variant.GroupingSets" class="anchor">§</a><h3 class="code-header">GroupingSets(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;)</h3></section><div class="docblock"><p>The <code>GROUPING SETS</code> expr.</p>
</div><section id="variant.Cube" class="variant"><a href="#variant.Cube" class="anchor">§</a><h3 class="code-header">Cube(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;)</h3></section><div class="docblock"><p>The <code>CUBE</code> expr.</p>
</div><section id="variant.Rollup" class="variant"><a href="#variant.Rollup" class="anchor">§</a><h3 class="code-header">Rollup(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;&gt;)</h3></section><div class="docblock"><p>The <code>ROLLUP</code> expr.</p>
</div><section id="variant.Tuple" class="variant"><a href="#variant.Tuple" class="anchor">§</a><h3 class="code-header">Tuple(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p>ROW / TUPLE a single value, such as <code>SELECT (1, 2)</code></p>
</div><section id="variant.Struct" class="variant"><a href="#variant.Struct" class="anchor">§</a><h3 class="code-header">Struct</h3></section><div class="docblock"><p><code>Struct</code> literal expression
Syntax:</p>
<div class="example-wrap"><pre class="language-sql"><code>STRUCT&lt;[field_name] field_type, ...&gt;( expr1 [, ... ])
[BigQuery](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#struct_type)
[Databricks](https://docs.databricks.com/en/sql/language-manual/functions/struct.html)</code></pre></div></div><div class="sub-variant" id="variant.Struct.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Struct.field.values" class="section-header"><a href="#variant.Struct.field.values" class="anchor field">§</a><code>values: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>Struct values.</p>
</div></div><div class="sub-variant-field"><span id="variant.Struct.field.fields" class="section-header"><a href="#variant.Struct.field.fields" class="anchor field">§</a><code>fields: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;StructField&gt;</code></span><div class="docblock"><p>Struct field definitions.</p>
</div></div></div><section id="variant.Named" class="variant"><a href="#variant.Named" class="anchor">§</a><h3 class="code-header">Named</h3></section><div class="docblock"><p><code>BigQuery</code> specific: An named expression in a typeless struct <a href="https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#struct_type">1</a></p>
<p>Syntax</p>
<div class="example-wrap"><pre class="language-sql"><code>1 AS A</code></pre></div></div><div class="sub-variant" id="variant.Named.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Named.field.expr" class="section-header"><a href="#variant.Named.field.expr" class="anchor field">§</a><code>expr: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;</code></span><div class="docblock"><p>The expression being named.</p>
</div></div><div class="sub-variant-field"><span id="variant.Named.field.name" class="section-header"><a href="#variant.Named.field.name" class="anchor field">§</a><code>name: <a class="struct" href="struct.Ident.html" title="struct sql::ast::Ident">Ident</a></code></span><div class="docblock"><p>The assigned identifier name for the expression.</p>
</div></div></div><section id="variant.Dictionary" class="variant"><a href="#variant.Dictionary" class="anchor">§</a><h3 class="code-header">Dictionary(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;DictionaryField&gt;)</h3></section><div class="docblock"><p><code>DuckDB</code> specific <code>Struct</code> literal expression <a href="https://duckdb.org/docs/sql/data_types/struct#creating-structs">1</a></p>
<p>Syntax:</p>
<div class="example-wrap"><pre class="language-sql"><code>syntax: {&#39;field_name&#39;: expr1[, ... ]}</code></pre></div></div><section id="variant.Map" class="variant"><a href="#variant.Map" class="anchor">§</a><h3 class="code-header">Map(Map)</h3></section><div class="docblock"><p><code>DuckDB</code> specific <code>Map</code> literal expression <a href="https://duckdb.org/docs/sql/data_types/map#creating-maps">1</a></p>
<p>Syntax:</p>
<div class="example-wrap"><pre class="language-sql"><code>syntax: Map {key1: value1[, ... ]}</code></pre></div></div><section id="variant.Array" class="variant"><a href="#variant.Array" class="anchor">§</a><h3 class="code-header">Array(Array)</h3></section><div class="docblock"><p>An array expression e.g. <code>ARRAY[1, 2]</code></p>
</div><section id="variant.Interval" class="variant"><a href="#variant.Interval" class="anchor">§</a><h3 class="code-header">Interval(Interval)</h3></section><div class="docblock"><p>An interval expression e.g. <code>INTERVAL '1' YEAR</code></p>
</div><section id="variant.MatchAgainst" class="variant"><a href="#variant.MatchAgainst" class="anchor">§</a><h3 class="code-header">MatchAgainst</h3></section><div class="docblock"><p><code>MySQL</code> specific text search function <a href="https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html#function_match">(1)</a>.</p>
<p>Syntax:</p>
<div class="example-wrap"><pre class="language-sql"><code>MATCH (&lt;col&gt;, &lt;col&gt;, ...) AGAINST (&lt;expr&gt; [&lt;search modifier&gt;])
&lt;col&gt; = CompoundIdentifier
&lt;expr&gt; = String literal</code></pre></div></div><div class="sub-variant" id="variant.MatchAgainst.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.MatchAgainst.field.columns" class="section-header"><a href="#variant.MatchAgainst.field.columns" class="anchor field">§</a><code>columns: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>&gt;</code></span><div class="docblock"><p><code>(&lt;col&gt;, &lt;col&gt;, ...)</code>.</p>
</div></div><div class="sub-variant-field"><span id="variant.MatchAgainst.field.match_value" class="section-header"><a href="#variant.MatchAgainst.field.match_value" class="anchor field">§</a><code>match_value: <a class="enum" href="enum.Value.html" title="enum sql::ast::Value">Value</a></code></span><div class="docblock"><p><code>&lt;expr&gt;</code>.</p>
</div></div><div class="sub-variant-field"><span id="variant.MatchAgainst.field.opt_search_modifier" class="section-header"><a href="#variant.MatchAgainst.field.opt_search_modifier" class="anchor field">§</a><code>opt_search_modifier: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;SearchModifier&gt;</code></span><div class="docblock"><p><code>&lt;search modifier&gt;</code></p>
</div></div></div><section id="variant.Wildcard" class="variant"><a href="#variant.Wildcard" class="anchor">§</a><h3 class="code-header">Wildcard(AttachedToken)</h3></section><div class="docblock"><p>An unqualified <code>*</code> wildcard token (e.g. <code>*</code>).</p>
</div><section id="variant.QualifiedWildcard" class="variant"><a href="#variant.QualifiedWildcard" class="anchor">§</a><h3 class="code-header">QualifiedWildcard(<a class="struct" href="struct.ObjectName.html" title="struct sql::ast::ObjectName">ObjectName</a>, AttachedToken)</h3></section><div class="docblock"><p>Qualified wildcard, e.g. <code>alias.*</code> or <code>schema.table.*</code>.
(Same caveats apply to <code>QualifiedWildcard</code> as to <code>Wildcard</code>.)</p>
</div><section id="variant.OuterJoin" class="variant"><a href="#variant.OuterJoin" class="anchor">§</a><h3 class="code-header">OuterJoin(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p>Some dialects support an older syntax for outer joins where columns are
marked with the <code>(+)</code> operator in the WHERE clause, for example:</p>
<div class="example-wrap"><pre class="language-sql"><code>SELECT t1.c1, t2.c2 FROM t1, t2 WHERE t1.c1 = t2.c2 (+)</code></pre></div>
<p>which is equivalent to</p>
<div class="example-wrap"><pre class="language-sql"><code>SELECT t1.c1, t2.c2 FROM t1 LEFT OUTER JOIN t2 ON t1.c1 = t2.c2</code></pre></div>
<p>See <a href="https://docs.snowflake.com/en/sql-reference/constructs/where#joins-in-the-where-clause">https://docs.snowflake.com/en/sql-reference/constructs/where#joins-in-the-where-clause</a>.</p>
</div><section id="variant.Prior" class="variant"><a href="#variant.Prior" class="anchor">§</a><h3 class="code-header">Prior(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt;)</h3></section><div class="docblock"><p>A reference to the prior level in a CONNECT BY clause.</p>
</div><section id="variant.Lambda" class="variant"><a href="#variant.Lambda" class="anchor">§</a><h3 class="code-header">Lambda(LambdaFunction)</h3></section><div class="docblock"><p>A lambda function.</p>
<p>Syntax:</p>
<div class="example-wrap"><pre class="language-plaintext"><code>param -&gt; expr | (param1, ...) -&gt; expr</code></pre></div>
<p><a href="https://clickhouse.com/docs/en/sql-reference/functions#higher-order-functions---operator-and-lambdaparams-expr-function">ClickHouse</a>
<a href="https://docs.databricks.com/en/sql/language-manual/sql-ref-lambda-functions.html">Databricks</a>
<a href="https://duckdb.org/docs/stable/sql/functions/lambda">DuckDB</a></p>
</div><section id="variant.MemberOf" class="variant"><a href="#variant.MemberOf" class="anchor">§</a><h3 class="code-header">MemberOf(MemberOf)</h3></section><div class="docblock"><p>Checks membership of a value in a JSON array</p>
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Expr" class="impl"><a href="#impl-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.value" class="method"><h4 class="code-header">pub fn <a href="#method.value" class="fn">value</a>(value: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="struct.ValueWithSpan.html" title="struct sql::ast::ValueWithSpan">ValueWithSpan</a>&gt;) -&gt; <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h4></section></summary><div class="docblock"><p>Creates a new <a href="enum.Expr.html#variant.Value" title="variant sql::ast::Expr::Value"><code>Expr::Value</code></a></p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Expr" class="impl"><a href="#impl-Clone-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h4></section></summary><div class='docblock'>Returns a duplicate of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#245-247">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: &amp;Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Expr" class="impl"><a href="#impl-Debug-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C'de%3E-for-Expr" class="impl"><a href="#impl-Deserialize%3C'de%3E-for-Expr" class="anchor">§</a><h3 class="code-header">impl&lt;'de&gt; <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html" title="trait serde_core::de::Deserialize">Deserialize</a>&lt;'de&gt; for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a>&lt;__D&gt;(
__deserializer: __D,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>, &lt;__D as <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;&gt;::<a class="associatedtype" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html#associatedtype.Error" title="type serde_core::de::Deserializer::Error">Error</a>&gt;<div class="where">where
__D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-Expr" class="impl"><a href="#impl-Display-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CExpr%3E-for-FunctionArgExpr" class="impl"><a href="#impl-From%3CExpr%3E-for-FunctionArgExpr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>&gt; for <a class="enum" href="enum.FunctionArgExpr.html" title="enum sql::ast::FunctionArgExpr">FunctionArgExpr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(wildcard_expr: <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>) -&gt; <a class="enum" href="enum.FunctionArgExpr.html" title="enum sql::ast::FunctionArgExpr">FunctionArgExpr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Hash-for-Expr" class="impl"><a href="#impl-Hash-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a>&lt;__H&gt;(&amp;self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut __H</a>)<div class="where">where
__H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</div></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#234-236">Source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a>&lt;H&gt;(data: &amp;[Self], state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut H</a>)<div class="where">where
H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Ord-for-Expr" class="impl"><a href="#impl-Ord-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&amp;self, other: &amp;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1034-1036">Source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1073-1075">Source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1099-1101">Source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-Expr" class="impl"><a href="#impl-PartialEq-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&amp;self, other: &amp;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#264">Source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Expr" class="impl"><a href="#impl-PartialOrd-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&amp;self, other: &amp;<a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>&gt;</h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1411">Source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than (for <code>self</code> and <code>other</code>) and is used by the <code>&lt;</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1429">Source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the
<code>&lt;=</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1447">Source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>&gt;</code>
operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1465">Source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by
the <code>&gt;=</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Expr" class="impl"><a href="#impl-Serialize-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl"><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a>&lt;__S&gt;(
&amp;self,
__serializer: __S,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&lt;__S as <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>&gt;::<a class="associatedtype" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html#associatedtype.Ok" title="type serde_core::ser::Serializer::Ok">Ok</a>, &lt;__S as <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>&gt;::<a class="associatedtype" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html#associatedtype.Error" title="type serde_core::ser::Serializer::Error">Error</a>&gt;<div class="where">where
__S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Spanned-for-Expr" class="impl"><a href="#impl-Spanned-for-Expr" class="anchor">§</a><h3 class="code-header">impl Spanned for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3><div class="docblock"><h4 id="partial-span"><a class="doc-anchor" href="#partial-span">§</a>partial span</h4>
<p>Most expressions are missing keywords in their spans.
f.e. <code>IS NULL &lt;expr&gt;</code> reports as <code>&lt;expr&gt;::span</code>.</p>
</div></section></summary><div class="docblock"><p>Missing spans:</p>
<ul>
<li><a href="enum.Expr.html#variant.MatchAgainst" title="variant sql::ast::Expr::MatchAgainst">Expr::MatchAgainst</a> # MySQL specific</li>
<li><a href="enum.Expr.html#variant.RLike" title="variant sql::ast::Expr::RLike">Expr::RLike</a> # MySQL specific</li>
<li><a href="enum.Expr.html#variant.Struct" title="variant sql::ast::Expr::Struct">Expr::Struct</a> # BigQuery specific</li>
<li><a href="enum.Expr.html#variant.Named" title="variant sql::ast::Expr::Named">Expr::Named</a> # BigQuery specific</li>
<li><a href="enum.Expr.html#variant.Dictionary" title="variant sql::ast::Expr::Dictionary">Expr::Dictionary</a> # DuckDB specific</li>
<li><a href="enum.Expr.html#variant.Map" title="variant sql::ast::Expr::Map">Expr::Map</a> # DuckDB specific</li>
<li><a href="enum.Expr.html#variant.Lambda" title="variant sql::ast::Expr::Lambda">Expr::Lambda</a></li>
</ul>
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.span" class="method trait-impl"><a href="#method.span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">span</a>(&amp;self) -&gt; Span</h4></section></summary><div class='docblock'>Return the [<code>Span</code>] (the minimum and maximum <a href="crate::tokenizer::Location"><code>Location</code></a>) for this AST
node, by recursively combining the spans of its children.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Visit-for-Expr" class="impl"><a href="#impl-Visit-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Visit.html" title="trait sql::ast::Visit">Visit</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.visit" class="method trait-impl"><a href="#method.visit" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Visit.html#tymethod.visit" class="fn">visit</a>&lt;V&gt;(&amp;self, visitor: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut V</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/ops/control_flow/enum.ControlFlow.html" title="enum core::ops::control_flow::ControlFlow">ControlFlow</a>&lt;&lt;V as <a class="trait" href="trait.Visitor.html" title="trait sql::ast::Visitor">Visitor</a>&gt;::<a class="associatedtype" href="trait.Visitor.html#associatedtype.Break" title="type sql::ast::Visitor::Break">Break</a>&gt;<div class="where">where
V: <a class="trait" href="trait.Visitor.html" title="trait sql::ast::Visitor">Visitor</a>,</div></h4></section></summary><div class='docblock'>Visit this node with the provided <a href="trait.Visitor.html" title="trait sql::ast::Visitor"><code>Visitor</code></a>. <a href="trait.Visit.html#tymethod.visit">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-VisitMut-for-Expr" class="impl"><a href="#impl-VisitMut-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.VisitMut.html" title="trait sql::ast::VisitMut">VisitMut</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.visit-1" class="method trait-impl"><a href="#method.visit-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.VisitMut.html#tymethod.visit" class="fn">visit</a>&lt;V&gt;(&amp;mut self, visitor: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut V</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/ops/control_flow/enum.ControlFlow.html" title="enum core::ops::control_flow::ControlFlow">ControlFlow</a>&lt;&lt;V as <a class="trait" href="trait.VisitorMut.html" title="trait sql::ast::VisitorMut">VisitorMut</a>&gt;::<a class="associatedtype" href="trait.VisitorMut.html#associatedtype.Break" title="type sql::ast::VisitorMut::Break">Break</a>&gt;<div class="where">where
V: <a class="trait" href="trait.VisitorMut.html" title="trait sql::ast::VisitorMut">VisitorMut</a>,</div></h4></section></summary><div class='docblock'>Mutably visit this node with the provided <a href="trait.VisitorMut.html" title="trait sql::ast::VisitorMut"><code>VisitorMut</code></a>. <a href="trait.VisitMut.html#tymethod.visit">Read more</a></div></details></div></details><section id="impl-Eq-for-Expr" class="impl"><a href="#impl-Eq-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-StructuralPartialEq-for-Expr" class="impl"><a href="#impl-StructuralPartialEq-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Expr" class="impl"><a href="#impl-Freeze-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-RefUnwindSafe-for-Expr" class="impl"><a href="#impl-RefUnwindSafe-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-Send-for-Expr" class="impl"><a href="#impl-Send-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-Sync-for-Expr" class="impl"><a href="#impl-Sync-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-Unpin-for-Expr" class="impl"><a href="#impl-Unpin-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-UnsafeUnpin-for-Expr" class="impl"><a href="#impl-UnsafeUnpin-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.UnsafeUnpin.html" title="trait core::marker::UnsafeUnpin">UnsafeUnpin</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section><section id="impl-UnwindSafe-for-Expr" class="impl"><a href="#impl-UnwindSafe-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Expr.html" title="enum sql::ast::Expr">Expr</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#142">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CallHasher-for-T" class="impl"><a href="#impl-CallHasher-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; CallHasher for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="method.get_hash" class="method trait-impl"><a href="#method.get_hash" class="anchor">§</a><h4 class="code-header">default fn <a class="fn">get_hash</a>&lt;H, B&gt;(value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;H</a>, build_hasher: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;B</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a><div class="where">where
H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.BuildHasher.html" title="trait core::hash::BuildHasher">BuildHasher</a>,</div></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#547">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#549">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dest: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dest</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Comparable%3CK%3E-for-Q" class="impl"><a href="#impl-Comparable%3CK%3E-for-Q" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; Comparable&lt;K&gt; for Q<div class="where">where
Q: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.compare" class="method trait-impl"><a href="#method.compare" class="anchor">§</a><h4 class="code-header">fn <a class="fn">compare</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>Compare self to <code>key</code> and return their ordering.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Conv-for-T" class="impl"><a href="#impl-Conv-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Conv for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.conv" class="method trait-impl"><a href="#method.conv" class="anchor">§</a><h4 class="code-header">fn <a class="fn">conv</a>&lt;T&gt;(self) -&gt; T<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h4></section></summary><div class='docblock'>Converts <code>self</code> into <code>T</code> using <code>Into&lt;T&gt;</code>. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-DynEq-for-T" class="impl"><a href="#impl-DynEq-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; DynEq for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.dyn_eq" class="method trait-impl"><a href="#method.dyn_eq" class="anchor">§</a><h4 class="code-header">fn <a class="fn">dyn_eq</a>(&amp;self, other: &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-DynHash-for-T" class="impl"><a href="#impl-DynHash-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; DynHash for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.dyn_hash" class="method trait-impl"><a href="#method.dyn_hash" class="anchor">§</a><h4 class="code-header">fn <a class="fn">dyn_hash</a>(&amp;self, state: &amp;mut dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Equivalent%3CK%3E-for-Q" class="impl"><a href="#impl-Equivalent%3CK%3E-for-Q" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; Equivalent&lt;K&gt; for Q<div class="where">where
Q: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.equivalent" class="method trait-impl"><a href="#method.equivalent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">equivalent</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Compare self to <code>key</code> and return <code>true</code> if they are equal.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Equivalent%3CK%3E-for-Q-1" class="impl"><a href="#impl-Equivalent%3CK%3E-for-Q-1" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; Equivalent&lt;K&gt; for Q<div class="where">where
Q: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.equivalent-1" class="method trait-impl"><a href="#method.equivalent-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">equivalent</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Checks if this value is equivalent to the given key. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FmtForward-for-T" class="impl"><a href="#impl-FmtForward-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; FmtForward for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt_binary" class="method trait-impl"><a href="#method.fmt_binary" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_binary</a>(self) -&gt; FmtBinary&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html" title="trait core::fmt::Binary">Binary</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Binary</code> implementation when <code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_display" class="method trait-impl"><a href="#method.fmt_display" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_display</a>(self) -&gt; FmtDisplay&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Display</code> implementation when
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_lower_exp" class="method trait-impl"><a href="#method.fmt_lower_exp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_lower_exp</a>(self) -&gt; FmtLowerExp&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html" title="trait core::fmt::LowerExp">LowerExp</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>LowerExp</code> implementation when
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_lower_hex" class="method trait-impl"><a href="#method.fmt_lower_hex" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_lower_hex</a>(self) -&gt; FmtLowerHex&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html" title="trait core::fmt::LowerHex">LowerHex</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>LowerHex</code> implementation when
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_octal" class="method trait-impl"><a href="#method.fmt_octal" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_octal</a>(self) -&gt; FmtOctal&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html" title="trait core::fmt::Octal">Octal</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Octal</code> implementation when <code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_pointer" class="method trait-impl"><a href="#method.fmt_pointer" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_pointer</a>(self) -&gt; FmtPointer&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html" title="trait core::fmt::Pointer">Pointer</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Pointer</code> implementation when
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_upper_exp" class="method trait-impl"><a href="#method.fmt_upper_exp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_upper_exp</a>(self) -&gt; FmtUpperExp&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html" title="trait core::fmt::UpperExp">UpperExp</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>UpperExp</code> implementation when
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_upper_hex" class="method trait-impl"><a href="#method.fmt_upper_hex" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_upper_hex</a>(self) -&gt; FmtUpperHex&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html" title="trait core::fmt::UpperHex">UpperHex</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>UpperHex</code> implementation when
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_list" class="method trait-impl"><a href="#method.fmt_list" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_list</a>(self) -&gt; FmtList&lt;Self&gt;<div class="where">where
&amp;'a Self: for&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,</div></h4></section></summary><div class='docblock'>Formats each item in a sequence. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#785">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#788">Source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRef%3CT%3E-for-T" class="impl"><a href="#impl-FromRef%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; FromRef&lt;T&gt; for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_ref" class="method trait-impl"><a href="#method.from_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_ref</a>(input: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; T</h4></section></summary><div class='docblock'>Converts to this type from a reference to the input type.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FutureExt-for-T" class="impl"><a href="#impl-FutureExt-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; FutureExt for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_context" class="method trait-impl"><a href="#method.with_context" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_context</a>(self, otel_cx: Context) -&gt; WithContext&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the provided <a href="Context"><code>Context</code></a> to this type, returning a <code>WithContext</code>
wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_context" class="method trait-impl"><a href="#method.with_current_context" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_context</a>(self) -&gt; WithContext&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="Context"><code>Context</code></a> to this type, returning a <code>WithContext</code>
wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#767-769">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#777">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoEither-for-T" class="impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#64">Source</a><a href="#impl-IntoEither-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html" title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_either" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#29">Source</a><a href="#method.into_either" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either" class="fn">into_either</a>(self, into_left: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Self, Self&gt;</h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
if <code>into_left</code> is <code>true</code>.
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.into_either_with" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57">Source</a><a href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with" class="fn">into_either_with</a>&lt;F&gt;(self, into_left: F) -&gt; <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Self, Self&gt;<div class="where">where
F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;Self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
if <code>into_left(&amp;self)</code> returns <code>true</code>.
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoRequest%3CT%3E-for-T" class="impl"><a href="#impl-IntoRequest%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; IntoRequest&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_request" class="method trait-impl"><a href="#method.into_request" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_request</a>(self) -&gt; Request&lt;T&gt;</h4></section></summary><div class='docblock'>Wrap the input message <code>T</code> in a <code>tonic::Request</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoRequest%3CT%3E-for-T-1" class="impl"><a href="#impl-IntoRequest%3CT%3E-for-T-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; IntoRequest&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_request-1" class="method trait-impl"><a href="#method.into_request-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_request</a>(self) -&gt; Request&lt;T&gt;</h4></section></summary><div class='docblock'>Wrap the input message <code>T</code> in a <code>tonic::Request</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-LayerExt%3CL%3E-for-L" class="impl"><a href="#impl-LayerExt%3CL%3E-for-L" class="anchor">§</a><h3 class="code-header">impl&lt;L&gt; LayerExt&lt;L&gt; for L</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.named_layer" class="method trait-impl"><a href="#method.named_layer" class="anchor">§</a><h4 class="code-header">fn <a class="fn">named_layer</a>&lt;S&gt;(&amp;self, service: S) -&gt; Layered&lt;&lt;L as Layer&lt;S&gt;&gt;::Service, S&gt;<div class="where">where
L: Layer&lt;S&gt;,</div></h4></section></summary><div class='docblock'>Applies the layer to a service and wraps it in [<code>Layered</code>].</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-LayerExt%3CL%3E-for-L-1" class="impl"><a href="#impl-LayerExt%3CL%3E-for-L-1" class="anchor">§</a><h3 class="code-header">impl&lt;L&gt; LayerExt&lt;L&gt; for L</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.named_layer-1" class="method trait-impl"><a href="#method.named_layer-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">named_layer</a>&lt;S&gt;(&amp;self, service: S) -&gt; Layered&lt;&lt;L as Layer&lt;S&gt;&gt;::Service, S&gt;<div class="where">where
L: Layer&lt;S&gt;,</div></h4></section></summary><div class='docblock'>Applies the layer to a service and wraps it in [<code>Layered</code>].</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pipe-for-T" class="impl"><a href="#impl-Pipe-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pipe for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.pipe" class="method trait-impl"><a href="#method.pipe" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(Self) -&gt; R) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Pipes by value. This is generally the method you want to use. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_ref" class="method trait-impl"><a href="#method.pipe_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_ref</a>&lt;'a, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'a Self) -&gt; R) -&gt; R<div class="where">where
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code> and passes that borrow into the pipe function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_ref_mut" class="method trait-impl"><a href="#method.pipe_ref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_ref_mut</a>&lt;'a, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;'a mut Self) -&gt; R) -&gt; R<div class="where">where
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code> and passes that borrow into the pipe function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_borrow" class="method trait-impl"><a href="#method.pipe_borrow" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_borrow</a>&lt;'a, B, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a B</a>) -&gt; R) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,
B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.borrow()</code> into the pipe function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_borrow_mut" class="method trait-impl"><a href="#method.pipe_borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_borrow_mut</a>&lt;'a, B, R&gt;(
&amp;'a mut self,
func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut B</a>) -&gt; R,
) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,
B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.borrow_mut()</code> into the pipe
function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_as_ref" class="method trait-impl"><a href="#method.pipe_as_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_as_ref</a>&lt;'a, U, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a U</a>) -&gt; R) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;U&gt;,
U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.as_ref()</code> into the pipe function.</div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_as_mut" class="method trait-impl"><a href="#method.pipe_as_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_as_mut</a>&lt;'a, U, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut U</a>) -&gt; R) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;U&gt;,
U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.as_mut()</code> into the pipe
function.</div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_deref" class="method trait-impl"><a href="#method.pipe_deref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_deref</a>&lt;'a, T, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>) -&gt; R) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,
T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.deref()</code> into the pipe function.</div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_deref_mut" class="method trait-impl"><a href="#method.pipe_deref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_deref_mut</a>&lt;'a, T, R&gt;(
&amp;'a mut self,
func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut T</a>) -&gt; R,
) -&gt; R<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,
T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.deref_mut()</code> into the pipe
function.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-PolicyExt-for-T" class="impl"><a href="#impl-PolicyExt-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; PolicyExt for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.and" class="method trait-impl"><a href="#method.and" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and</a>&lt;P, B, E&gt;(self, other: P) -&gt; And&lt;T, P&gt;<div class="where">where
T: Policy&lt;B, E&gt;,
P: Policy&lt;B, E&gt;,</div></h4></section></summary><div class='docblock'>Create a new <code>Policy</code> that returns [<code>Action::Follow</code>] only if <code>self</code> and <code>other</code> return
<code>Action::Follow</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or" class="method trait-impl"><a href="#method.or" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or</a>&lt;P, B, E&gt;(self, other: P) -&gt; Or&lt;T, P&gt;<div class="where">where
T: Policy&lt;B, E&gt;,
P: Policy&lt;B, E&gt;,</div></h4></section></summary><div class='docblock'>Create a new <code>Policy</code> that returns [<code>Action::Follow</code>] if either <code>self</code> or <code>other</code> returns
<code>Action::Follow</code>. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Same-for-T" class="impl"><a class="src rightside" href="https://docs.rs/typenum/1.18.0/src/typenum/type_operators.rs.html#34">Source</a><a href="#impl-Same-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/typenum/1.18.0/typenum/type_operators/trait.Same.html" title="trait typenum::type_operators::Same">Same</a> for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl"><a class="src rightside" href="https://docs.rs/typenum/1.18.0/src/typenum/type_operators.rs.html#35">Source</a><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://docs.rs/typenum/1.18.0/typenum/type_operators/trait.Same.html#associatedtype.Output" class="associatedtype">Output</a> = T</h4></section></summary><div class='docblock'>Should always be <code>Self</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ServiceExt-for-T" class="impl"><a href="#impl-ServiceExt-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; ServiceExt for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.propagate_header" class="method trait-impl"><a href="#method.propagate_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">propagate_header</a>(self, header: HeaderName) -&gt; PropagateHeader&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Propagate a header from the request to the response. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.add_extension" class="method trait-impl"><a href="#method.add_extension" class="anchor">§</a><h4 class="code-header">fn <a class="fn">add_extension</a>&lt;T&gt;(self, value: T) -&gt; AddExtension&lt;Self, T&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Add some shareable value to <a href="https://docs.rs/http/latest/http/struct.Extensions.html">request extensions</a>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_request_body" class="method trait-impl"><a href="#method.map_request_body" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_request_body</a>&lt;F&gt;(self, f: F) -&gt; MapRequestBody&lt;Self, F&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Apply a transformation to the request body. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_response_body" class="method trait-impl"><a href="#method.map_response_body" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_response_body</a>&lt;F&gt;(self, f: F) -&gt; MapResponseBody&lt;Self, F&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Apply a transformation to the response body. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.compression" class="method trait-impl"><a href="#method.compression" class="anchor">§</a><h4 class="code-header">fn <a class="fn">compression</a>(self) -&gt; Compression&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compresses response bodies. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.decompression" class="method trait-impl"><a href="#method.decompression" class="anchor">§</a><h4 class="code-header">fn <a class="fn">decompression</a>(self) -&gt; Decompression&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Decompress response bodies. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.trace_for_http" class="method trait-impl"><a href="#method.trace_for_http" class="anchor">§</a><h4 class="code-header">fn <a class="fn">trace_for_http</a>(self) -&gt; Trace&lt;Self, SharedClassifier&lt;ServerErrorsAsFailures&gt;&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>High level tracing that classifies responses using HTTP status codes. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.trace_for_grpc" class="method trait-impl"><a href="#method.trace_for_grpc" class="anchor">§</a><h4 class="code-header">fn <a class="fn">trace_for_grpc</a>(self) -&gt; Trace&lt;Self, SharedClassifier&lt;GrpcErrorsAsFailures&gt;&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>High level tracing that classifies responses using gRPC headers. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.follow_redirects" class="method trait-impl"><a href="#method.follow_redirects" class="anchor">§</a><h4 class="code-header">fn <a class="fn">follow_redirects</a>(self) -&gt; FollowRedirect&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Follow redirect resposes using the <a href="crate::follow_redirect::policy::Standard"><code>Standard</code></a> policy. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.sensitive_headers" class="method trait-impl"><a href="#method.sensitive_headers" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sensitive_headers</a>(
self,
headers: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = HeaderName&gt;,
) -&gt; SetSensitiveRequestHeaders&lt;SetSensitiveResponseHeaders&lt;Self&gt;&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mark headers as <a href="https://docs.rs/http/latest/http/header/struct.HeaderValue.html#method.set_sensitive">sensitive</a> on both requests and responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.sensitive_request_headers" class="method trait-impl"><a href="#method.sensitive_request_headers" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sensitive_request_headers</a>(
self,
headers: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = HeaderName&gt;,
) -&gt; SetSensitiveRequestHeaders&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mark headers as <a href="https://docs.rs/http/latest/http/header/struct.HeaderValue.html#method.set_sensitive">sensitive</a> on requests. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.sensitive_response_headers" class="method trait-impl"><a href="#method.sensitive_response_headers" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sensitive_response_headers</a>(
self,
headers: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = HeaderName&gt;,
) -&gt; SetSensitiveResponseHeaders&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mark headers as <a href="https://docs.rs/http/latest/http/header/struct.HeaderValue.html#method.set_sensitive">sensitive</a> on responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.override_request_header" class="method trait-impl"><a href="#method.override_request_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">override_request_header</a>&lt;M&gt;(
self,
header_name: HeaderName,
make: M,
) -&gt; SetRequestHeader&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the request. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.append_request_header" class="method trait-impl"><a href="#method.append_request_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append_request_header</a>&lt;M&gt;(
self,
header_name: HeaderName,
make: M,
) -&gt; SetRequestHeader&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Append a header into the request. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.insert_request_header_if_not_present" class="method trait-impl"><a href="#method.insert_request_header_if_not_present" class="anchor">§</a><h4 class="code-header">fn <a class="fn">insert_request_header_if_not_present</a>&lt;M&gt;(
self,
header_name: HeaderName,
make: M,
) -&gt; SetRequestHeader&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the request, if the header is not already present. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.override_response_header" class="method trait-impl"><a href="#method.override_response_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">override_response_header</a>&lt;M&gt;(
self,
header_name: HeaderName,
make: M,
) -&gt; SetResponseHeader&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the response. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.append_response_header" class="method trait-impl"><a href="#method.append_response_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append_response_header</a>&lt;M&gt;(
self,
header_name: HeaderName,
make: M,
) -&gt; SetResponseHeader&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Append a header into the response. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.insert_response_header_if_not_present" class="method trait-impl"><a href="#method.insert_response_header_if_not_present" class="anchor">§</a><h4 class="code-header">fn <a class="fn">insert_response_header_if_not_present</a>&lt;M&gt;(
self,
header_name: HeaderName,
make: M,
) -&gt; SetResponseHeader&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the response, if the header is not already present. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.set_request_id" class="method trait-impl"><a href="#method.set_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">set_request_id</a>&lt;M&gt;(
self,
header_name: HeaderName,
make_request_id: M,
) -&gt; SetRequestId&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
M: MakeRequestId,</div></h4></section></summary><div class='docblock'>Add request id header and extension. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.set_x_request_id" class="method trait-impl"><a href="#method.set_x_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">set_x_request_id</a>&lt;M&gt;(self, make_request_id: M) -&gt; SetRequestId&lt;Self, M&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
M: MakeRequestId,</div></h4></section></summary><div class='docblock'>Add request id header and extension, using <code>x-request-id</code> as the header name. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.propagate_request_id" class="method trait-impl"><a href="#method.propagate_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">propagate_request_id</a>(
self,
header_name: HeaderName,
) -&gt; PropagateRequestId&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Propgate request ids from requests to responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.propagate_x_request_id" class="method trait-impl"><a href="#method.propagate_x_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">propagate_x_request_id</a>(self) -&gt; PropagateRequestId&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Propgate request ids from requests to responses, using <code>x-request-id</code> as the header name. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.catch_panic" class="method trait-impl"><a href="#method.catch_panic" class="anchor">§</a><h4 class="code-header">fn <a class="fn">catch_panic</a>(self) -&gt; CatchPanic&lt;Self, DefaultResponseForPanic&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Catch panics and convert them into <code>500 Internal Server</code> responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.request_body_limit" class="method trait-impl"><a href="#method.request_body_limit" class="anchor">§</a><h4 class="code-header">fn <a class="fn">request_body_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; RequestBodyLimit&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Intercept requests with over-sized payloads and convert them into
<code>413 Payload Too Large</code> responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.trim_trailing_slash" class="method trait-impl"><a href="#method.trim_trailing_slash" class="anchor">§</a><h4 class="code-header">fn <a class="fn">trim_trailing_slash</a>(self) -&gt; NormalizePath&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Remove trailing slashes from paths. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.append_trailing_slash" class="method trait-impl"><a href="#method.append_trailing_slash" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append_trailing_slash</a>(self) -&gt; NormalizePath&lt;Self&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Append trailing slash to paths. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Tap-for-T" class="impl"><a href="#impl-Tap-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Tap for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.tap" class="method trait-impl"><a href="#method.tap" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;Self)) -&gt; Self</h4></section></summary><div class='docblock'>Immutable access to a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_mut" class="method trait-impl"><a href="#method.tap_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_mut</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;mut Self)) -&gt; Self</h4></section></summary><div class='docblock'>Mutable access to a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow" class="method trait-impl"><a href="#method.tap_borrow" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;B</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,
B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Immutable access to the <code>Borrow&lt;B&gt;</code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow_mut" class="method trait-impl"><a href="#method.tap_borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow_mut</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut B</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,
B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mutable access to the <code>BorrowMut&lt;B&gt;</code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref" class="method trait-impl"><a href="#method.tap_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;R</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,
R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Immutable access to the <code>AsRef&lt;R&gt;</code> view of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref_mut" class="method trait-impl"><a href="#method.tap_ref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref_mut</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut R</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,
R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mutable access to the <code>AsMut&lt;R&gt;</code> view of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref" class="method trait-impl"><a href="#method.tap_deref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Immutable access to the <code>Deref::Target</code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref_mut" class="method trait-impl"><a href="#method.tap_deref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref_mut</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mutable access to the <code>Deref::Target</code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_dbg" class="method trait-impl"><a href="#method.tap_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;Self)) -&gt; Self</h4></section></summary><div class='docblock'>Calls <code>.tap()</code> only in debug builds, and is erased in release builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_mut_dbg" class="method trait-impl"><a href="#method.tap_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_mut_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;mut Self)) -&gt; Self</h4></section></summary><div class='docblock'>Calls <code>.tap_mut()</code> only in debug builds, and is erased in release
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow_dbg" class="method trait-impl"><a href="#method.tap_borrow_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;B</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,
B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_borrow()</code> only in debug builds, and is erased in release
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow_mut_dbg" class="method trait-impl"><a href="#method.tap_borrow_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow_mut_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut B</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,
B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_borrow_mut()</code> only in debug builds, and is erased in release
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref_dbg" class="method trait-impl"><a href="#method.tap_ref_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;R</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,
R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_ref()</code> only in debug builds, and is erased in release
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref_mut_dbg" class="method trait-impl"><a href="#method.tap_ref_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref_mut_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut R</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,
R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_ref_mut()</code> only in debug builds, and is erased in release
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref_dbg" class="method trait-impl"><a href="#method.tap_deref_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_deref()</code> only in debug builds, and is erased in release
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref_mut_dbg" class="method trait-impl"><a href="#method.tap_deref_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref_mut_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>)) -&gt; Self<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_deref_mut()</code> only in debug builds, and is erased in release
builds.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#72-74">Source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#76">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#77">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#81">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToString-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2891">Source</a><a href="#impl-ToString-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2893">Source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToStringFallible-for-T" class="impl"><a href="#impl-ToStringFallible-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; ToStringFallible for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_to_string" class="method trait-impl"><a href="#method.try_to_string" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_to_string</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/struct.TryReserveError.html" title="struct alloc::collections::TryReserveError">TryReserveError</a>&gt;</h4></section></summary><div class="docblock"><p><a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string" title="method alloc::string::ToString::to_string"><code>ToString::to_string</code></a>, but without panic on OOM.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryConv-for-T" class="impl"><a href="#impl-TryConv-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; TryConv for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_conv" class="method trait-impl"><a href="#method.try_conv" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_conv</a>&lt;T&gt;(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;T&gt;,</div></h4></section></summary><div class='docblock'>Attempts to convert <code>self</code> into <code>T</code> using <code>TryInto&lt;T&gt;</code>. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#827-829">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#831">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#834">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#811-813">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#815">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#818">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-T" class="impl"><a href="#impl-VZip%3CV%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;V, T&gt; VZip&lt;V&gt; for T<div class="where">where
V: MultiLane&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -&gt; V</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; WithDispatch&lt;Self&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="crate::dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details><section id="impl-Allocation-for-T" class="impl"><a href="#impl-Allocation-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Allocation for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-Any-for-T-1" class="impl"><a href="#impl-Any-for-T-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Any for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section><section id="impl-CloneAny-for-T" class="impl"><a href="#impl-CloneAny-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; CloneAny for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section><section id="impl-CloneAnySend-for-T" class="impl"><a href="#impl-CloneAnySend-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; CloneAnySend for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section><section id="impl-CloneAnySendSync-for-T" class="impl"><a href="#impl-CloneAnySendSync-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; CloneAnySendSync for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section><section id="impl-CloneAnySync-for-T" class="impl"><a href="#impl-CloneAnySync-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; CloneAnySync for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section><section id="impl-DeserializeOwned-for-T" class="impl"><a class="src rightside" href="https://docs.rs/serde_core/1.0.228/src/serde_core/de/mod.rs.html#633">Source</a><a href="#impl-DeserializeOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a> for T<div class="where">where
T: for&lt;'de&gt; <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html" title="trait serde_core::de::Deserialize">Deserialize</a>&lt;'de&gt;,</div></h3></section><section id="impl-ErasedDestructor-for-T" class="impl"><a href="#impl-ErasedDestructor-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; ErasedDestructor for T<div class="where">where
T: 'static,</div></h3></section><section id="impl-MaybeSend-for-T" class="impl"><a href="#impl-MaybeSend-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSend for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-MaybeSend-for-T-1" class="impl"><a href="#impl-MaybeSend-for-T-1" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSend for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></div></section></div></main></body></html>