sqlx_d1_core/
lib.rs

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