drizzle_sqlite/builder/
delete.rs1use crate::values::SQLiteValue;
2use drizzle_core::{SQL, ToSQL};
3use std::fmt::Debug;
4use std::marker::PhantomData;
5
6use super::ExecutableState;
8
9#[derive(Debug, Clone, Copy, Default)]
15pub struct DeleteInitial;
16
17#[derive(Debug, Clone, Copy, Default)]
19pub struct DeleteWhereSet;
20
21#[derive(Debug, Clone, Copy, Default)]
23pub struct DeleteReturningSet;
24
25impl ExecutableState for DeleteInitial {}
27impl ExecutableState for DeleteWhereSet {}
28impl ExecutableState for DeleteReturningSet {}
29
30pub type DeleteBuilder<'a, Schema, State, Table> = super::QueryBuilder<'a, Schema, State, Table>;
36
37impl<'a, S, T> DeleteBuilder<'a, S, DeleteInitial, T> {
42 #[inline]
44 pub fn r#where(
45 self,
46 condition: SQL<'a, SQLiteValue<'a>>,
47 ) -> DeleteBuilder<'a, S, DeleteWhereSet, T> {
48 let where_sql = crate::helpers::r#where(condition);
49 DeleteBuilder {
50 sql: self.sql.append(where_sql),
51 schema: PhantomData,
52 state: PhantomData,
53 table: PhantomData,
54 }
55 }
56
57 #[inline]
59 pub fn returning(
60 self,
61 columns: impl ToSQL<'a, SQLiteValue<'a>>,
62 ) -> DeleteBuilder<'a, S, DeleteReturningSet, T> {
63 let returning_sql = crate::helpers::returning(columns);
64 DeleteBuilder {
65 sql: self.sql.append(returning_sql),
66 schema: PhantomData,
67 state: PhantomData,
68 table: PhantomData,
69 }
70 }
71}
72
73impl<'a, S, T> DeleteBuilder<'a, S, DeleteWhereSet, T> {
78 #[inline]
80 pub fn returning(
81 self,
82 columns: impl ToSQL<'a, SQLiteValue<'a>>,
83 ) -> DeleteBuilder<'a, S, DeleteReturningSet, T> {
84 let returning_sql = crate::helpers::returning(columns);
85 DeleteBuilder {
86 sql: self.sql.append(returning_sql),
87 schema: PhantomData,
88 state: PhantomData,
89 table: PhantomData,
90 }
91 }
92}