taitan_orm/database/sqlite/
extractor.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
use sqlx::Database;
use taitan_orm_trait::{Entity, Location, Mutation, TemplateRecord, Unique};
use taitan_orm_trait::pagination::Pagination;
use crate::database::sqlite::{SqliteDatabase, SqliteTransaction};
use crate::extractor::Extractor;

impl Extractor for SqliteDatabase {

    #[inline(always)]
    fn extract_pagination_arguments(page: &Pagination) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(page.gen_page_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_unique_arguments<M: Mutation>(unique: &dyn Unique<Mutation=M>) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(unique.gen_unique_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_location_arguments(location: &dyn Location) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(location.gen_location_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_insert_arguments(entity: &dyn Entity) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(entity.gen_insert_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_upsert_arguments(entity: &dyn Entity) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(entity.gen_upsert_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_update_arguments<'a, M: Mutation>(mutation: &'a M, unique: &'a dyn Unique<Mutation=M>) -> crate::Result<<Self::DB as Database>::Arguments<'a>> {
        Ok(unique.gen_update_arguments_sqlite(mutation)?)
    }

    #[inline(always)]
    fn extract_change_arguments<'a, M: Mutation>(mutation: &'a M, location: &'a M::Location) -> crate::Result<<Self::DB as Database>::Arguments<'a>> {
        Ok(mutation.gen_change_arguments_sqlite(location)?)
    }

    #[inline(always)]
    fn extract_delete_arguments<M: Mutation>(unique: &dyn Unique<Mutation=M>) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(unique.gen_unique_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_purify_arguments(location: &dyn Location) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(location.gen_location_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_template_arguments(template: &dyn TemplateRecord) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(template.gen_template_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_template_count_arguments(template: &dyn TemplateRecord) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(template.gen_template_count_arguments_sqlite()?)
    }
}

impl <'t> Extractor for SqliteTransaction<'t> {

    #[inline(always)]
    fn extract_pagination_arguments(page: &Pagination) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(page.gen_page_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_unique_arguments<M: Mutation>(unique: &dyn Unique<Mutation=M>) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(unique.gen_unique_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_location_arguments(location: &dyn Location) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(location.gen_location_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_insert_arguments(entity: &dyn Entity) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(entity.gen_insert_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_upsert_arguments(entity: &dyn Entity) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(entity.gen_upsert_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_update_arguments<'a, M: Mutation>(mutation: &'a M, unique: &'a dyn Unique<Mutation=M>) -> crate::Result<<Self::DB as Database>::Arguments<'a>> {
        Ok(unique.gen_update_arguments_sqlite(mutation)?)
    }

    #[inline(always)]
    fn extract_change_arguments<'a, M: Mutation>(mutation: &'a M, location: &'a M::Location) -> crate::Result<<Self::DB as Database>::Arguments<'a>> {
        Ok(mutation.gen_change_arguments_sqlite(location)?)
    }

    #[inline(always)]
    fn extract_delete_arguments<M: Mutation>(unique: &dyn Unique<Mutation=M>) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(unique.gen_unique_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_purify_arguments(location: &dyn Location) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(location.gen_location_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_template_arguments(template: &dyn TemplateRecord) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(template.gen_template_arguments_sqlite()?)
    }

    #[inline(always)]
    fn extract_template_count_arguments(template: &dyn TemplateRecord) -> crate::Result<<Self::DB as Database>::Arguments<'_>> {
        Ok(template.gen_template_count_arguments_sqlite()?)
    }
}