Struct rbatis::wrapper::Wrapper [−][src]
The packing/Wrapper of the SQL SQL passed into the Wrapper keep the keyword uppercase
for Example: let w = Wrapper::new(&DriverType::Mysql) .push_sql(“id == 1”) .eq("id", 1) .and() .ne("id", 1) .and() .in_array("id", &[1, 2, 3]) .in_("id", &[1, 2, 3]) .r#in("id", &[1, 2, 3]) .and() .not_in("id", &[1, 2, 3]) .and() .like("name", 1) .or() .not_like("name", "asdf") .and() .between("create_time", "2020-01-01 00:00:00", "2020-12-12 00:00:00") .group_by(&["id"]) .order_by(true, &["id", "name"]) ;
Fields
driver_type: DriverType
sql: String
args: Vec<Value>
formats: HashMap<String, fn(arg: &str) -> String>
Implementations
impl Wrapper
[src]
pub fn new(driver_type: &DriverType) -> Self
[src]
pub fn from(driver_type: &DriverType, sql: &str, args: Vec<Value>) -> Self
[src]
pub fn trim_value(self, from: &str, to: &str) -> Self
[src]
pub fn set_formats(
self,
formats: HashMap<String, fn(arg: &str) -> String>
) -> Self
[src]
self,
formats: HashMap<String, fn(arg: &str) -> String>
) -> Self
pub fn push_wrapper(self, arg: &Wrapper) -> Self
[src]
link left Wrapper to this Wrapper for Example: let w = Wrapper::new(&DriverType::Postgres).push_sql("(").eq("a", "1").push_sql(")"); let w2 = Wrapper::new(&DriverType::Postgres).eq("b", "2") .and() .push_wrapper(&w); println!("sql:{:?}", w2.sql.as_str()); // sql:"b = ? AND (a = ?)" println!("arg:{:?}", w2.args.clone()); // arg:[String("2"), String("1")]
pub fn push<T>(self, sql: &str, args: &[T]) -> Self where
T: Serialize,
[src]
T: Serialize,
push sql,args into self
pub fn do_if<'s, F>(self, test: bool, method: F) -> Self where
F: FnOnce(Self) -> Self,
[src]
F: FnOnce(Self) -> Self,
do method,if test is true for example: let arg = 1; wrapper.do_if(true, |w| w.eq("id"))
pub fn do_match<'s, F>(
self,
cases: &[(bool, fn(_: Wrapper) -> Wrapper)],
default: F
) -> Self where
F: FnOnce(Self) -> Self,
[src]
self,
cases: &[(bool, fn(_: Wrapper) -> Wrapper)],
default: F
) -> Self where
F: FnOnce(Self) -> Self,
match cases
for example:
let p = Option::
pub fn set_sql(self, sql: &str) -> Self
[src]
pub fn push_sql(self, sql: &str) -> Self
[src]
pub fn set_args<T>(self, args: &[T]) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn push_arg<T>(self, arg: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn pop_arg(self) -> Self
[src]
pub fn and(self) -> Self
[src]
link wrapper sql, if end with where , do nothing
pub fn or(self) -> Self
[src]
link wrapper sql, if end with where , do nothing
pub fn having(self, sql_having: &str) -> Self
[src]
pub fn all_eq<T>(self, arg: T) -> Self where
T: Serialize,
[src]
T: Serialize,
arg: JsonObject or struct{} or map[String,**]
pub fn eq<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
equal for example: eq("a",1) " a = 1 "
pub fn ne<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
not equal
pub fn order_by(self, is_asc: bool, columns: &[&str]) -> Self
[src]
pub fn group_by(self, columns: &[&str]) -> Self
[src]
pub fn gt<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
sql: column > obj
pub fn ge<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
sql: column >= obj
pub fn lt<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
sql: column < obj
pub fn le<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
sql: column <= obj
pub fn between<T>(self, column: &str, min: T, max: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn not_between<T>(self, column: &str, min: T, max: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn like<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn like_left<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn like_right<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn not_like<T>(self, column: &str, obj: T) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn is_null(self, column: &str) -> Self
[src]
pub fn is_not_null(self, column: &str) -> Self
[src]
pub fn in_array<T>(self, column: &str, obj: &[T]) -> Self where
T: Serialize,
[src]
T: Serialize,
gen sql: * in (,,*)
pub fn in_<T>(self, column: &str, obj: &[T]) -> Self where
T: Serialize,
[src]
T: Serialize,
gen sql: * in (,,*)
pub fn in<T>(self, column: &str, obj: &[T]) -> Self where
T: Serialize,
[src]
T: Serialize,
gen sql: * in (,,*)
pub fn not_in<T>(self, column: &str, obj: &[T]) -> Self where
T: Serialize,
[src]
T: Serialize,
pub fn trim_space(self) -> Self
[src]
pub fn trim_and(self) -> Self
[src]
pub fn trim_or(self) -> Self
[src]
pub fn trim_and_or(self) -> Self
[src]
pub fn insert_into(self, table_name: &str, columns: &str, values: &str) -> Self
[src]
pub fn limit(self, limit: u64) -> Self
[src]
limit for example: limit(1) " LIMIT 1 "
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Wrapper
impl Send for Wrapper
impl Sync for Wrapper
impl Unpin for Wrapper
impl UnwindSafe for Wrapper
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Conv for T
impl<T> Conv for T
impl<T> FmtForward for T
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Self: Binary,
pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Self: Display,
pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Self: LowerExp,
pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Self: LowerHex,
pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Self: Octal,
pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Self: Pointer,
pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Self: UpperExp,
pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Self: UpperHex,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pipe for T where
T: ?Sized,
T: ?Sized,
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
R: 'a,
pub fn pipe_ref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
pub fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
pub fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
pub fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
pub fn pipe_as_mut<'a, U, R>(
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
pub fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
pub fn pipe_deref_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
impl<T> Pipe for T
impl<T> PipeAsRef for T
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Self: AsRef<T>,
T: 'a,
R: 'a,
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
impl<T> PipeBorrow for T
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Self: Borrow<T>,
T: 'a,
R: 'a,
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
impl<T> PipeDeref for T
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
impl<T> PipeRef for T
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
R: 'a,
pub fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
R: 'a,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> Tap for T
pub fn tap(self, func: impl FnOnce(&Self)) -> Self
pub fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self
pub fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Self: Borrow<B>,
B: ?Sized,
pub fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Self: BorrowMut<B>,
B: ?Sized,
pub fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Self: AsRef<R>,
R: ?Sized,
pub fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Self: AsMut<R>,
R: ?Sized,
pub fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Self: Deref<Target = T>,
T: ?Sized,
pub fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
pub fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
pub fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
pub fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Self: Borrow<B>,
B: ?Sized,
pub fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Self: BorrowMut<B>,
B: ?Sized,
pub fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Self: AsRef<R>,
R: ?Sized,
pub fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Self: AsMut<R>,
R: ?Sized,
pub fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Self: Deref<Target = T>,
T: ?Sized,
pub fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
impl<T> Tap for T
pub fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
F: FnOnce(&Self) -> R,
pub fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
F: FnOnce(&Self) -> R,
pub fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
F: FnOnce(&mut Self) -> R,
pub fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
F: FnOnce(&mut Self) -> R,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
impl<T> TapDeref for T
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> TryConv for T
impl<T> TryConv for T
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,