ormlitex_core/query_builder/
args.rs

1use core::default::Default;
2use sqlx::database::HasArguments;
3use sqlx::{Arguments, Database, IntoArguments};
4
5pub struct QueryBuilderArgs<'q, DB: Database>(
6    pub Box<<DB as HasArguments<'q>>::Arguments>,
7    usize,
8);
9
10impl<'q, DB: Database> QueryBuilderArgs<'q, DB> {
11    pub fn add<T: 'q + Send + sqlx::Encode<'q, DB> + sqlx::Type<DB>>(&mut self, arg: T) {
12        self.0.add(arg);
13        self.1 += 1;
14    }
15
16    pub fn len(&self) -> usize {
17        self.1
18    }
19}
20
21impl<'q, DB: Database> IntoArguments<'q, DB> for QueryBuilderArgs<'q, DB> {
22    fn into_arguments(self) -> <DB as HasArguments<'q>>::Arguments {
23        *self.0
24    }
25}
26
27impl<'q, DB: Database> Default for QueryBuilderArgs<'q, DB> {
28    fn default() -> Self {
29        Self(Box::default(), 0)
30    }
31}