remove re-exports from sqlx-core and let sqlx fully define the module layout

This commit is contained in:
Ryan Leckey 2020-03-02 00:11:38 -08:00
parent 81bf390678
commit 10232a2cdc
26 changed files with 66 additions and 89 deletions

View File

@ -3,10 +3,11 @@ use std::future::Future;
use futures_core::future::BoxFuture;
use futures_core::stream::BoxStream;
use crate::connection::MaybeOwnedConnection;
use crate::connection::{Connect, MaybeOwnedConnection};
use crate::database::{Database, HasRow};
use crate::executor::Execute;
use crate::{Connect, Pool, Row};
use crate::pool::Pool;
use crate::row::Row;
/// Represents a result set, which is generated by executing a query against the database.
///

View File

@ -1,8 +1,9 @@
//! Types for returning SQL type information about queries.
use crate::Database;
use std::fmt::{self, Debug};
use crate::database::Database;
/// The return type of [Executor::describe].
#[non_exhaustive]
pub struct Describe<DB>

View File

@ -1,3 +1,5 @@
//! Core of SQLx, the rust SQL toolkit. Not intended to be used directly.
#![forbid(unsafe_code)]
#![allow(unused)]
#![cfg_attr(docsrs, feature(doc_cfg))]
@ -9,14 +11,14 @@ pub mod error;
#[macro_use]
mod io;
mod connection;
mod cursor;
pub mod connection;
pub mod cursor;
pub mod database;
#[macro_use]
mod executor;
pub mod executor;
mod transaction;
pub mod transaction;
mod url;
#[doc(hidden)]
@ -24,10 +26,7 @@ pub mod runtime;
#[macro_use]
pub mod arguments;
#[doc(hidden)]
pub mod decode;
pub mod describe;
pub mod encode;
pub mod pool;
@ -49,32 +48,8 @@ pub mod mysql;
#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
pub mod postgres;
pub use database::Database;
#[doc(inline)]
pub use error::{Error, Result};
pub use connection::{Connect, Connection};
pub use cursor::Cursor;
pub use executor::{Execute, Executor};
pub use transaction::Transaction;
#[doc(inline)]
pub use pool::Pool;
#[doc(inline)]
pub use row::{FromRow, Row};
#[cfg(feature = "mysql")]
#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
#[doc(inline)]
pub use mysql::MySql;
#[cfg(feature = "postgres")]
#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
#[doc(inline)]
pub use postgres::Postgres;
// Named Lifetimes:
// 'c: connection
// 'q: query string (and arguments)

View File

@ -1,11 +1,12 @@
use crate::{Connect, Connection, Executor};
use futures_core::future::BoxFuture;
use std::ops::{Deref, DerefMut};
use std::sync::Arc;
use std::time::Instant;
use super::inner::{DecrementSizeGuard, SharedPool};
use crate::connection::{Connect, Connection};
use crate::describe::Describe;
use crate::executor::Executor;
/// A connection checked out from [`Pool`][crate::Pool].
///

View File

@ -3,17 +3,14 @@ use std::ops::DerefMut;
use futures_core::{future::BoxFuture, stream::BoxStream};
use futures_util::StreamExt;
use crate::{
connection::{Connect, Connection},
describe::Describe,
executor::{Executor, RefExecutor},
pool::Pool,
Cursor, Database,
};
use super::PoolConnection;
use crate::database::HasCursor;
use crate::connection::{Connect, Connection};
use crate::cursor::Cursor;
use crate::database::{Database, HasCursor};
use crate::describe::Describe;
use crate::executor::Execute;
use crate::executor::{Executor, RefExecutor};
use crate::pool::Pool;
impl<'p, C, DB> Executor for &'p Pool<C>
where

View File

@ -16,7 +16,7 @@ use crate::{
error::Error,
};
use super::conn::{Floating, Idle, Live};
use super::connection::{Floating, Idle, Live};
use super::Options;
pub(super) struct SharedPool<C> {

View File

@ -7,20 +7,19 @@ use std::{
};
use crate::connection::Connect;
use crate::database::Database;
use crate::transaction::Transaction;
use self::inner::SharedPool;
use self::options::Options;
pub use self::conn::PoolConnection;
mod conn;
mod connection;
mod executor;
mod inner;
mod options;
pub use self::connection::PoolConnection;
pub use self::options::Builder;
use crate::Database;
/// A pool of database connections.
pub struct Pool<C>(Arc<SharedPool<C>>);

View File

@ -2,7 +2,7 @@ use std::{marker::PhantomData, time::Duration};
use super::Pool;
use crate::connection::Connect;
use crate::Database;
use crate::database::Database;
/// Builder for [Pool].
pub struct Builder<C> {

View File

@ -3,8 +3,8 @@ use byteorder::{ByteOrder, NetworkEndian};
use crate::arguments::Arguments;
use crate::encode::{Encode, IsNull};
use crate::io::BufMut;
use crate::postgres::Postgres;
use crate::types::Type;
use crate::Postgres;
#[derive(Default)]
pub struct PgArguments {

View File

@ -11,17 +11,17 @@ use futures_util::TryFutureExt;
use crate::connection::{Connect, Connection};
use crate::describe::{Column, Describe};
use crate::executor::Executor;
use crate::io::{Buf, BufStream, MaybeTlsStream};
use crate::postgres::protocol::{
self, Authentication, AuthenticationMd5, AuthenticationSasl, Decode, Encode, Message,
ParameterDescription, PasswordMessage, RowDescription, StartupMessage, StatementId, Terminate,
TypeFormat,
};
use crate::postgres::sasl;
use crate::postgres::stream::PgStream;
use crate::postgres::{tls, PgError, PgTypeInfo};
use crate::postgres::{sasl, tls, PgError, PgTypeInfo, Postgres};
use crate::url::Url;
use crate::{Error, Executor, Postgres};
use crate::Error;
/// An asynchronous connection to a [Postgres][super::Postgres] database.
///

View File

@ -11,14 +11,14 @@ use futures_core::stream::BoxStream;
use crate::connection::{ConnectionSource, MaybeOwnedConnection};
use crate::cursor::Cursor;
use crate::database::Database;
use crate::database::HasRow;
use crate::executor::Execute;
use crate::pool::{Pool, PoolConnection};
use crate::postgres::protocol::{
CommandComplete, DataRow, Message, RowDescription, StatementId, TypeFormat,
};
use crate::postgres::{PgArguments, PgConnection, PgRow};
use crate::{Database, Postgres};
use crate::postgres::{PgArguments, PgConnection, PgRow, Postgres};
use futures_core::Stream;
pub struct PgCursor<'c, 'q> {

View File

@ -22,7 +22,7 @@ mod tls;
mod types;
/// An alias for [`Pool`][crate::Pool], specialized for **Postgres**.
pub type PgPool = super::Pool<PgConnection>;
pub type PgPool = crate::pool::Pool<PgConnection>;
make_query_as!(PgQueryAs, Postgres, PgRow);
impl_map_row_for_row!(Postgres, PgRow);

View File

@ -2,9 +2,8 @@ use std::fmt::{self, Debug, Display};
use crate::decode::Decode;
use crate::postgres::protocol::TypeId;
use crate::postgres::PgValue;
use crate::postgres::{PgValue, Postgres};
use crate::types::TypeInfo;
use crate::Postgres;
mod bool;
mod bytes;

View File

@ -6,8 +6,9 @@ use crate::encode::Encode;
use crate::postgres::protocol::TypeId;
use crate::postgres::row::PgValue;
use crate::postgres::types::PgTypeInfo;
use crate::postgres::Postgres;
use crate::types::Type;
use crate::{Error, Postgres};
use crate::Error;
impl Type<Postgres> for str {
fn type_info() -> PgTypeInfo {

View File

@ -5,6 +5,7 @@ use std::pin::Pin;
use std::task::{Context, Poll};
use async_stream::try_stream;
use futures_core::future::BoxFuture;
use futures_core::stream::BoxStream;
use futures_core::Stream;
use futures_util::future::ready;
@ -18,9 +19,9 @@ use crate::cursor::Cursor;
use crate::database::{Database, HasCursor, HasRow};
use crate::encode::Encode;
use crate::executor::{Execute, Executor, RefExecutor};
use crate::row::FromRow;
use crate::types::Type;
use crate::{Error, FromRow};
use futures_core::future::BoxFuture;
use crate::Error;
/// Raw SQL query with bind parameters. Returned by [`query`][crate::query::query].
pub struct Query<'q, DB, A = <DB as Database>::Arguments>

View File

@ -3,11 +3,11 @@ use std::ops::{Deref, DerefMut};
use futures_core::future::BoxFuture;
use crate::connection::Connection;
use crate::database::Database;
use crate::database::HasCursor;
use crate::describe::Describe;
use crate::executor::{Execute, Executor};
use crate::runtime::spawn;
use crate::Database;
// Transaction<PoolConnection<PgConnection>>
// Transaction<PgConnection>

View File

@ -2,7 +2,7 @@
use std::fmt::{Debug, Display};
use crate::Database;
use crate::database::Database;
#[cfg(feature = "uuid")]
#[cfg_attr(docsrs, doc(cfg(feature = "uuid")))]

View File

@ -1,4 +1,4 @@
use sqlx::Database;
use sqlx::database::Database;
#[derive(PartialEq, Eq)]
#[allow(dead_code)]

View File

@ -1,5 +1,5 @@
impl_database_ext! {
sqlx::MySql {
sqlx::mysql::MySql {
u8,
u16,
u32,

View File

@ -1,5 +1,5 @@
impl_database_ext! {
sqlx::Postgres {
sqlx::postgres::Postgres {
bool,
String,
i16,

View File

@ -59,7 +59,7 @@ macro_rules! async_macro (
};
let res: Result<proc_macro2::TokenStream> = block_on(async {
use sqlx::Connect;
use sqlx::connection::Connect;
let db_url = Url::parse(&dotenv::var("DATABASE_URL").map_err(|_| "DATABASE_URL not set")?)?;

View File

@ -11,8 +11,8 @@ use syn::{ExprGroup, Token};
use quote::{format_ident, ToTokens};
use sqlx::connection::Connection;
use sqlx::describe::Describe;
use sqlx::Connection;
/// Macro input shared by `query!()` and `query_file!()`
pub struct QueryMacroInput {

View File

@ -8,8 +8,8 @@ pub use query::expand_query;
use crate::database::DatabaseExt;
use sqlx::Connection;
use sqlx::Database;
use sqlx::connection::Connection;
use sqlx::database::Database;
mod args;
mod input;

View File

@ -56,7 +56,7 @@ pub fn quote_query_as<DB: DatabaseExt>(
quote! {
sqlx::query::<#db_path>(#sql).bind_all(#bind_args).map(|row: #row_path| {
use sqlx::row::Row as _;
use sqlx::Row as _;
use sqlx::result_ext::ResultExt as _;
Ok(#out_ty { #(#instantiations),* })

View File

@ -5,7 +5,7 @@ use proc_macro2::TokenStream;
use syn::{Ident, Path};
use quote::{format_ident, quote};
use sqlx::{Connection, Database};
use sqlx::{connection::Connection, database::Database};
use super::{args, output, QueryMacroInput};
use crate::database::DatabaseExt;

View File

@ -7,18 +7,20 @@ compile_error!("one of 'runtime-async-std' or 'runtime-tokio' features must be e
#[cfg(all(feature = "runtime-tokio", feature = "runtime-async-std"))]
compile_error!("only one of 'runtime-async-std' or 'runtime-tokio' features must be enabled");
// Modules
pub use sqlx_core::{arguments, describe, error, pool, row, types};
// Types
pub use sqlx_core::{
Connect, Connection, Cursor, Error, Execute, Executor, FromRow, Pool, Result, Row,
Transaction
};
pub use sqlx_core::database::{Database, HasCursor, HasRawValue, HasRow};
pub use sqlx_core::describe;
pub use sqlx_core::executor::Executor;
pub use sqlx_core::pool::{self, Pool};
pub use sqlx_core::query::{self, query, Query};
pub use sqlx_core::query_as::{query_as, QueryAs};
pub use sqlx_core::row::{FromRow, Row};
pub use sqlx_core::transaction::Transaction;
#[doc(inline)]
pub use sqlx_core::types::{self, Type};
#[doc(inline)]
pub use sqlx_core::error::{self, Error, Result};
#[cfg(feature = "mysql")]
#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
@ -59,13 +61,13 @@ pub mod decode {
}
pub mod prelude {
pub use super::Connect as _;
pub use super::Connection as _;
pub use super::Cursor as _;
pub use super::Executor as _;
pub use super::FromRow as _;
pub use super::Row as _;
pub use super::Connect;
pub use super::Connection;
pub use super::Cursor;
pub use super::Executor;
pub use super::FromRow;
pub use super::Row;
#[cfg(feature = "postgres")]
pub use super::postgres::PgQueryAs as _;
pub use super::postgres::PgQueryAs;
}