Skip to main content

SqlCondition

Struct SqlCondition 

Source
pub struct SqlCondition<P> { /* private fields */ }
Expand description

A rendered SQL-style condition together with its positional bind parameters.

Shared by the SQL-flavoured vector stores, whose filter algebra differs only in the parameter type P and in the placeholder token their driver expects ($ for Postgres, ? for CQL). The placeholder is therefore supplied by the caller on every leaf constructor rather than baked into this type.

Parameters are collected left to right in the order their placeholders appear in SqlCondition::condition, which is the order drivers bind them in.

Implementations§

Source§

impl<P> SqlCondition<P>

Source

pub fn binary( key: impl AsRef<str>, op: &str, placeholder: &str, value: P, ) -> SqlCondition<P>

Renders <key> <op> <placeholder> bound to a single parameter, e.g. price >= $.

Source

pub fn list( key: impl AsRef<str>, op: &str, placeholder: &str, values: Vec<P>, ) -> SqlCondition<P>

Renders <key> <op> (<placeholder>, ...) with one placeholder per value, e.g. id IN (?, ?).

Source

pub fn raw(condition: impl Into<String>) -> SqlCondition<P>

Wraps an already-rendered, parameterless condition such as id is null.

Source

pub fn and(self, rhs: SqlCondition<P>) -> SqlCondition<P>

Conjoins two conditions as (lhs) AND (rhs), concatenating their parameters.

Source

pub fn or(self, rhs: SqlCondition<P>) -> SqlCondition<P>

Disjoins two conditions as (lhs) OR (rhs), concatenating their parameters.

Source

pub fn not(self) -> SqlCondition<P>

Negates the condition as NOT (condition), keeping its parameters.

Source

pub fn condition(&self) -> &str

The rendered condition, with placeholders as the caller supplied them.

Source

pub fn params(&self) -> &[P]

The bind parameters, in placeholder order.

Source

pub fn into_parts(self) -> (String, Vec<P>)

Consumes the condition, returning the rendered text and its parameters.

Trait Implementations§

Source§

impl<P> Clone for SqlCondition<P>
where P: Clone,

Source§

fn clone(&self) -> SqlCondition<P>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<P> Debug for SqlCondition<P>
where P: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<P> Default for SqlCondition<P>

Hand-written so that P needs no Default of its own: a parameterless empty condition is meaningful for every parameter type.

Source§

fn default() -> SqlCondition<P>

Returns the “default value” for a type. Read more
Source§

impl<'de, P> Deserialize<'de> for SqlCondition<P>
where P: Deserialize<'de>,

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<SqlCondition<P>, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<P> Serialize for SqlCondition<P>
where P: Serialize,

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<P> Freeze for SqlCondition<P>

§

impl<P> RefUnwindSafe for SqlCondition<P>
where P: RefUnwindSafe,

§

impl<P> Send for SqlCondition<P>
where P: Send,

§

impl<P> Sync for SqlCondition<P>
where P: Sync,

§

impl<P> Unpin for SqlCondition<P>
where P: Unpin,

§

impl<P> UnsafeUnpin for SqlCondition<P>

§

impl<P> UnwindSafe for SqlCondition<P>
where P: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneDebuggableStorage for T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

Source§

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoToolOutput for T
where T: Serialize + 'static,

Source§

fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>

Convert this value without routing structured data through a string.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WasmCompatSend for T
where T: Send,

Source§

impl<T> WasmCompatSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more