sqlx_d1_core/
lib.rs

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