drizzle_core/traits/
param.rs

1use crate::dialect::Dialect;
2
3/// A marker trait for types that can be used as SQL parameters.
4///
5/// This trait is used as a bound on the parameter type in SQL fragments.
6/// It ensures type safety when building SQL queries with parameters.
7pub trait SQLParam: Clone + core::fmt::Debug {
8    /// The SQL dialect for this parameter type
9    /// Default is SQLite (uses `?` placeholders)
10    const DIALECT: Dialect = Dialect::SQLite;
11}
12
13// Implement SQLParam for common types
14// impl<T: SQLParam> SQLParam for Option<T> {}
15// impl<T: SQLParam> SQLParam for Vec<T> {}
16// impl<T: SQLParam> SQLParam for Box<[T]> {}
17// impl<T: SQLParam> SQLParam for Rc<T> {}
18// impl<T: SQLParam> SQLParam for Arc<T> {}
19// impl<T: SQLParam> SQLParam for RefCell<T> {}
20// impl<'a, T: SQLParam> SQLParam for Cow<'a, T> {}
21// impl<T: SQLParam> SQLParam for &[T] {}
22// impl<T: SQLParam> SQLParam for &T {}
23// impl<const N: usize, T: SQLParam> SQLParam for [T; N] {}