sqlx_d1_core/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3mod error;
4mod value;
5mod column;
6mod row;
7mod connection;
8mod transaction;
9mod arguments;
10mod statement;
11mod query_result;
12mod type_info;
13pub mod types;
14
15type ResultFuture<'a, T> = std::pin::Pin<Box<dyn Future<Output = Result<T, sqlx_core::Error>> + Send + 'a>>;
16
17pub use connection::{D1Connection, D1ConnectOptions};
18
19#[derive(Debug)]
20pub struct D1;
21
22impl sqlx_core::database::Database for D1 {
23    type Connection = self::connection::D1Connection;
24
25    type TransactionManager = self::transaction::D1TransactionManager;
26
27    type Row = self::row::D1Row;
28
29    type QueryResult = self::query_result::D1QueryResult;
30
31    type Column = self::column::D1Column;
32
33    type TypeInfo = self::type_info::D1TypeInfo;
34
35    type Value = self::value::D1Value;
36    type ValueRef<'r> = self::value::D1ValueRef<'r>;
37
38    type Arguments<'q> = self::arguments::D1Arguments;
39    type ArgumentBuffer<'q> = Vec<self::value::D1Value>;
40
41    type Statement<'q> = self::statement::D1Statement<'q>;
42
43    const NAME: &'static str = "D1";
44
45    const URL_SCHEMES: &'static [&'static str] = &["d1"];
46}
47
48pub mod query {
49    use crate::{D1, arguments::D1Arguments, row::D1Row};
50    use sqlx_core::from_row::FromRow;
51
52    pub type QueryBuilder<'args> = sqlx_core::query_builder::QueryBuilder<'args, D1>;
53
54    pub use sqlx_core::query::Query;
55    pub fn query(sql: &str) -> Query<'_, D1, D1Arguments> {
56        sqlx_core::query::query(sql)
57    }
58    pub fn query_with(sql: &str, args: D1Arguments) -> Query<'_, D1, D1Arguments> {
59        sqlx_core::query::query_with(sql, args)
60    }
61
62    pub use sqlx_core::query_as::QueryAs;
63    pub fn query_as<O>(sql: &str) -> QueryAs<'_, D1, O, D1Arguments>
64    where
65        O: for<'r> FromRow<'r, D1Row>,
66    {
67        sqlx_core::query_as::query_as(sql)
68    }
69    pub fn query_as_with<O>(sql: &str, args: D1Arguments) -> QueryAs<'_, D1, O, D1Arguments>
70    where
71        O: for<'r> FromRow<'r, D1Row>,
72    {
73        sqlx_core::query_as::query_as_with(sql, args)
74    }
75
76    pub use sqlx_core::query_scalar::QueryScalar;
77    pub fn query_scalar<S>(sql: &str) -> QueryScalar<'_, D1, S, D1Arguments>
78    where
79        (S,): for<'r> FromRow<'r, D1Row>,
80    {
81        sqlx_core::query_scalar::query_scalar(sql)
82    }
83    pub fn query_scalar_with<S>(sql: &str, args: D1Arguments) -> QueryScalar<'_, D1, S, D1Arguments>
84    where
85        (S,): for<'r> FromRow<'r, D1Row>,
86    {
87        sqlx_core::query_scalar::query_scalar_with(sql, args)
88    }
89}
90pub use query::{
91    QueryBuilder,
92    query, query_with,
93    query_as, query_as_with,
94    query_scalar, query_scalar_with,
95};
96
97pub use sqlx_core::Error;
98
99#[doc(hidden)]
100pub use sqlx_core;