pub enum Condition {
NoExistingLimit,
NoExistingOrderBy,
HasSelectStar,
SessionVar {
name: String,
exists: bool,
},
ClientType {
client_type: String,
},
TableExists {
table: String,
},
And(Vec<Condition>),
Or(Vec<Condition>),
Not(Box<Condition>),
}Expand description
Condition for rule application
Variants§
NoExistingLimit
Query has no LIMIT clause
NoExistingOrderBy
Query has no ORDER BY clause
HasSelectStar
Query has SELECT *
SessionVar
Session variable check
ClientType
Client type check
TableExists
Table exists in schema
And(Vec<Condition>)
All conditions must match
Or(Vec<Condition>)
Any condition must match
Not(Box<Condition>)
Negate condition
Implementations§
Source§impl Condition
impl Condition
Sourcepub fn no_order_by() -> Self
pub fn no_order_by() -> Self
No existing ORDER BY
Sourcepub fn has_select_star() -> Self
pub fn has_select_star() -> Self
Has SELECT *
Sourcepub fn session_var(name: impl Into<String>) -> Self
pub fn session_var(name: impl Into<String>) -> Self
Session variable exists
Sourcepub fn client_type(client_type: impl Into<String>) -> Self
pub fn client_type(client_type: impl Into<String>) -> Self
Client type matches
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Condition
impl RefUnwindSafe for Condition
impl Send for Condition
impl Sync for Condition
impl Unpin for Condition
impl UnsafeUnpin for Condition
impl UnwindSafe for Condition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more