use welds_connections::Param;
pub type ParamArgs<'a> = Vec<&'a (dyn Param + Sync)>;
mod basic;
pub use basic::Basic;
mod basicopt;
pub use basicopt::BasicOpt;
mod numeric;
pub use numeric::Numeric;
mod numericopt;
pub use numericopt::NumericOpt;
mod text;
pub use text::Text;
mod textopt;
pub use textopt::TextOpt;
pub(crate) mod manualparam;
pub(crate) mod exists;
pub(crate) mod wherein;
pub(crate) mod orderby;
pub(crate) use orderby::OrderBy;
mod clause_adder;
pub use clause_adder::ClauseAdder;
mod assignment_adder;
mod or_and;
pub use or_and::and;
pub use or_and::or;
mod not;
pub use not::not;
#[cfg(feature = "unstable-api")]
pub use or_and::ClauseAdderAndOrExt;
pub use assignment_adder::AssignmentAdder;
pub struct ClauseColVal<T> {
pub null_clause: bool,
pub not_clause: bool,
pub col: &'static str,
pub operator: &'static str,
pub val: Option<T>,
}
pub struct ClauseColValEqual<T> {
pub null_clause: bool,
pub not_clause: bool,
pub col: &'static str,
pub operator: &'static str,
pub val: Option<T>,
}
pub struct ClauseColValIn<T> {
pub col: &'static str,
pub operator: &'static str,
pub list: Vec<T>,
}
pub struct ClauseColValList<T> {
pub col: &'static str,
pub operator: &'static str,
pub list: Vec<T>,
}
pub struct ClauseColManual {
pub(crate) col: Option<&'static str>,
pub(crate) sql: String,
pub(crate) params: Vec<Box<dyn Param + Send + Sync>>,
}
pub struct AssignmentManual {
pub(crate) col: &'static str,
pub(crate) sql: String,
pub(crate) params: Vec<Box<dyn Param + Send + Sync>>,
}
pub trait AsFieldName<T> {
fn colname(&self) -> &'static str;
fn fieldname(&self) -> &'static str;
}
pub trait AsOptField {}
pub struct SetColVal<T> {
pub col_raw: String,
pub val: T,
}
pub struct SetColNull {
pub col_raw: String,
}