sqlx_core_oldapi/any/
mod.rs1use crate::executor::Executor;
4
5#[macro_use]
6mod feature_combinations;
7
8#[macro_use]
9mod decode;
10
11#[macro_use]
12mod encode;
13
14#[macro_use]
15mod r#type;
16
17mod arguments;
18pub(crate) mod column;
19mod connection;
20mod database;
21mod kind;
22mod options;
23mod query_result;
24pub(crate) mod row;
25mod statement;
26mod transaction;
27pub(crate) mod type_info;
28pub mod types;
29pub(crate) mod value;
30
31#[cfg(feature = "migrate")]
32mod migrate;
33
34pub use arguments::{AnyArgumentBuffer, AnyArguments};
35pub use column::{AnyColumn, AnyColumnIndex};
36pub use connection::AnyConnection;
37#[doc(hidden)]
39pub use connection::AnyConnectionKind;
40pub use database::Any;
41pub use decode::AnyDecode;
42pub use encode::AnyEncode;
43pub use kind::AnyKind;
44pub use options::AnyConnectOptions;
45pub use query_result::AnyQueryResult;
46pub use row::AnyRow;
47pub use statement::AnyStatement;
48pub use transaction::AnyTransactionManager;
49pub use type_info::{AnyTypeInfo, AnyTypeInfoKind};
50pub use value::{AnyValue, AnyValueRef};
51
52pub type AnyPool = crate::pool::Pool<Any>;
53
54pub type AnyPoolOptions = crate::pool::PoolOptions<Any>;
55
56pub trait AnyExecutor<'c>: Executor<'c, Database = Any> {}
58impl<'c, T: Executor<'c, Database = Any>> AnyExecutor<'c> for T {}
59
60impl_into_arguments_for_arguments!(AnyArguments<'q>);
62impl_executor_for_pool_connection!(Any, AnyConnection, AnyRow);
63impl_executor_for_transaction!(Any, AnyRow);
64impl_acquire!(Any, AnyConnection);
65impl_column_index_for_row!(AnyRow);
66impl_column_index_for_statement!(AnyStatement);
67impl_into_maybe_pool!(Any, AnyConnection);
68
69impl<'q, T> crate::encode::Encode<'q, Any> for Option<T>
71where
72 T: AnyEncode<'q> + 'q + Sync,
73{
74 fn encode_by_ref(&self, buf: &mut AnyArgumentBuffer<'q>) -> crate::encode::IsNull {
75 match &mut buf.0 {
76 #[cfg(feature = "postgres")]
77 arguments::AnyArgumentBufferKind::Postgres(args, _) => args.add(self),
78
79 #[cfg(feature = "mysql")]
80 arguments::AnyArgumentBufferKind::MySql(args, _) => args.add(self),
81
82 #[cfg(feature = "mssql")]
83 arguments::AnyArgumentBufferKind::Mssql(args, _) => args.add(self),
84
85 #[cfg(feature = "sqlite")]
86 arguments::AnyArgumentBufferKind::Sqlite(args) => args.add(self),
87
88 #[cfg(feature = "odbc")]
89 arguments::AnyArgumentBufferKind::Odbc(args, _) => {
90 let _ = <Option<T> as crate::encode::Encode<'q, crate::odbc::Odbc>>::encode_by_ref(
91 self,
92 &mut args.values,
93 );
94 }
95 }
96
97 crate::encode::IsNull::No
99 }
100}