mirror of
https://github.com/launchbadge/sqlx
synced 2024-09-20 06:11:57 +00:00
Remove the Done trait
This commit is contained in:
parent
fd0101afb2
commit
a1d562f04b
19 changed files with 23 additions and 63 deletions
|
@ -20,6 +20,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- [[#940]] Rename the `#[sqlx(rename)]` attribute used to specify the type name on the database
|
||||
side to `#[sqlx(type_name)]` [[@jplatte]].
|
||||
|
||||
- [[#976]] Remove the `Done` trait. The `.rows_affected()` method is now available as an inherent
|
||||
method on `PgDone`, `MySqlDone` and so on.
|
||||
|
||||
## 0.4.2 - 2020-12-19
|
||||
|
||||
- [[#908]] Fix `whoami` crash on FreeBSD platform [[@fundon]] [[@AldaronLau]]
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
use sqlx::mysql::MySqlPool;
|
||||
use sqlx::Done;
|
||||
use std::env;
|
||||
use structopt::StructOpt;
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use async_trait::async_trait;
|
||||
use dotenv;
|
||||
use sqlx::postgres::PgPool;
|
||||
use sqlx::Done;
|
||||
use std::{env, io::Write, sync::Arc};
|
||||
use structopt::StructOpt;
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
use sqlx::postgres::PgPool;
|
||||
use sqlx::Done;
|
||||
use std::env;
|
||||
use structopt::StructOpt;
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
use sqlx::sqlite::SqlitePool;
|
||||
use sqlx::Done;
|
||||
use std::env;
|
||||
use structopt::StructOpt;
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
use crate::any::Any;
|
||||
use crate::done::Done;
|
||||
use std::iter::{Extend, IntoIterator};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
|
@ -9,19 +7,15 @@ pub struct AnyDone {
|
|||
}
|
||||
|
||||
impl AnyDone {
|
||||
pub fn rows_affected(&self) -> u64 {
|
||||
self.rows_affected
|
||||
}
|
||||
|
||||
pub fn last_insert_id(&self) -> Option<i64> {
|
||||
self.last_insert_id
|
||||
}
|
||||
}
|
||||
|
||||
impl Done for AnyDone {
|
||||
type Database = Any;
|
||||
|
||||
fn rows_affected(&self) -> u64 {
|
||||
self.rows_affected
|
||||
}
|
||||
}
|
||||
|
||||
impl Extend<AnyDone> for AnyDone {
|
||||
fn extend<T: IntoIterator<Item = AnyDone>>(&mut self, iter: T) {
|
||||
for elem in iter {
|
||||
|
|
|
@ -58,7 +58,6 @@ use std::fmt::Debug;
|
|||
use crate::arguments::Arguments;
|
||||
use crate::column::Column;
|
||||
use crate::connection::Connection;
|
||||
use crate::done::Done;
|
||||
use crate::row::Row;
|
||||
use crate::statement::Statement;
|
||||
use crate::transaction::TransactionManager;
|
||||
|
@ -88,7 +87,7 @@ pub trait Database:
|
|||
type Row: Row<Database = Self>;
|
||||
|
||||
/// The concrete `Done` implementation for this database.
|
||||
type Done: Done<Database = Self>;
|
||||
type Done: 'static + Sized + Send + Sync + Default + Extend<Self::Done>;
|
||||
|
||||
/// The concrete `Column` implementation for this database.
|
||||
type Column: Column<Database = Self>;
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
use crate::database::Database;
|
||||
use std::iter::Extend;
|
||||
|
||||
pub trait Done: 'static + Sized + Send + Sync + Default + Extend<Self> {
|
||||
type Database: Database;
|
||||
|
||||
/// Returns the number of rows affected by an `UPDATE`, `INSERT`, or `DELETE`.
|
||||
fn rows_affected(&self) -> u64;
|
||||
}
|
|
@ -58,7 +58,6 @@ pub mod statement;
|
|||
mod common;
|
||||
pub mod database;
|
||||
pub mod describe;
|
||||
pub mod done;
|
||||
pub mod executor;
|
||||
pub mod from_row;
|
||||
mod io;
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
use crate::done::Done;
|
||||
use crate::mssql::Mssql;
|
||||
use std::iter::{Extend, IntoIterator};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
|
@ -7,10 +5,8 @@ pub struct MssqlDone {
|
|||
pub(super) rows_affected: u64,
|
||||
}
|
||||
|
||||
impl Done for MssqlDone {
|
||||
type Database = Mssql;
|
||||
|
||||
fn rows_affected(&self) -> u64 {
|
||||
impl MssqlDone {
|
||||
pub fn rows_affected(&self) -> u64 {
|
||||
self.rows_affected
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
use crate::done::Done;
|
||||
use crate::mysql::MySql;
|
||||
use std::iter::{Extend, IntoIterator};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
|
@ -12,12 +10,8 @@ impl MySqlDone {
|
|||
pub fn last_insert_id(&self) -> u64 {
|
||||
self.last_insert_id
|
||||
}
|
||||
}
|
||||
|
||||
impl Done for MySqlDone {
|
||||
type Database = MySql;
|
||||
|
||||
fn rows_affected(&self) -> u64 {
|
||||
pub fn rows_affected(&self) -> u64 {
|
||||
self.rows_affected
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
use crate::done::Done;
|
||||
use crate::postgres::Postgres;
|
||||
use std::iter::{Extend, IntoIterator};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
|
@ -7,10 +5,8 @@ pub struct PgDone {
|
|||
pub(super) rows_affected: u64,
|
||||
}
|
||||
|
||||
impl Done for PgDone {
|
||||
type Database = Postgres;
|
||||
|
||||
fn rows_affected(&self) -> u64 {
|
||||
impl PgDone {
|
||||
pub fn rows_affected(&self) -> u64 {
|
||||
self.rows_affected
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
use crate::done::Done;
|
||||
use crate::sqlite::Sqlite;
|
||||
use std::iter::{Extend, IntoIterator};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
|
@ -9,19 +7,15 @@ pub struct SqliteDone {
|
|||
}
|
||||
|
||||
impl SqliteDone {
|
||||
pub fn rows_affected(&self) -> u64 {
|
||||
self.changes
|
||||
}
|
||||
|
||||
pub fn last_insert_rowid(&self) -> i64 {
|
||||
self.last_insert_rowid
|
||||
}
|
||||
}
|
||||
|
||||
impl Done for SqliteDone {
|
||||
type Database = Sqlite;
|
||||
|
||||
fn rows_affected(&self) -> u64 {
|
||||
self.changes
|
||||
}
|
||||
}
|
||||
|
||||
impl Extend<SqliteDone> for SqliteDone {
|
||||
fn extend<T: IntoIterator<Item = SqliteDone>>(&mut self, iter: T) {
|
||||
for elem in iter {
|
||||
|
|
|
@ -18,7 +18,6 @@ pub use sqlx_core::column::ColumnIndex;
|
|||
pub use sqlx_core::connection::{ConnectOptions, Connection};
|
||||
pub use sqlx_core::database::{self, Database};
|
||||
pub use sqlx_core::describe::Describe;
|
||||
pub use sqlx_core::done::Done;
|
||||
pub use sqlx_core::executor::{Execute, Executor};
|
||||
pub use sqlx_core::from_row::FromRow;
|
||||
pub use sqlx_core::pool::{self, Pool};
|
||||
|
@ -140,7 +139,6 @@ pub mod prelude {
|
|||
pub use super::ConnectOptions;
|
||||
pub use super::Connection;
|
||||
pub use super::Decode;
|
||||
pub use super::Done;
|
||||
pub use super::Encode;
|
||||
pub use super::Executor;
|
||||
pub use super::FromRow;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
///
|
||||
/// | Number of Rows | Method to Call* | Returns | Notes |
|
||||
/// |----------------| ----------------------------|-----------------------------------------------------|-------|
|
||||
/// | None† | `.execute(...).await` | `sqlx::Result<impl Done>` | For `INSERT`/`UPDATE`/`DELETE` without `RETURNING`. See [`crate::Done`]. |
|
||||
/// | None† | `.execute(...).await` | `sqlx::Result<DB::Done>` | For `INSERT`/`UPDATE`/`DELETE` without `RETURNING`. |
|
||||
/// | Zero or One | `.fetch_optional(...).await`| `sqlx::Result<Option<{adhoc struct}>>` | Extra rows are ignored. |
|
||||
/// | Exactly One | `.fetch_one(...).await` | `sqlx::Result<{adhoc struct}>` | Errors if no rows were returned. Extra rows are ignored. Aggregate queries, use this. |
|
||||
/// | At Least One | `.fetch(...)` | `impl Stream<Item = sqlx::Result<{adhoc struct}>>` | Call `.try_next().await` to get each row result. |
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use futures::TryStreamExt;
|
||||
use sqlx::mssql::Mssql;
|
||||
use sqlx::{Column, Connection, Done, Executor, MssqlConnection, Row, Statement, TypeInfo};
|
||||
use sqlx::{Column, Connection, Executor, MssqlConnection, Row, Statement, TypeInfo};
|
||||
use sqlx_core::mssql::MssqlRow;
|
||||
use sqlx_test::new;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use futures::TryStreamExt;
|
||||
use sqlx::mysql::{MySql, MySqlConnection, MySqlPool, MySqlPoolOptions, MySqlRow};
|
||||
use sqlx::{Column, Connection, Done, Executor, Row, Statement, TypeInfo};
|
||||
use sqlx::{Column, Connection, Executor, Row, Statement, TypeInfo};
|
||||
use sqlx_test::{new, setup_if_needed};
|
||||
use std::env;
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ use sqlx::postgres::{
|
|||
PgConnectOptions, PgConnection, PgDatabaseError, PgErrorPosition, PgSeverity,
|
||||
};
|
||||
use sqlx::postgres::{PgPoolOptions, PgRow, Postgres};
|
||||
use sqlx::{Column, Connection, Done, Executor, Row, Statement, TypeInfo};
|
||||
use sqlx::{Column, Connection, Executor, Row, Statement, TypeInfo};
|
||||
use sqlx_test::{new, setup_if_needed};
|
||||
use std::env;
|
||||
use std::thread;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
use futures::TryStreamExt;
|
||||
use sqlx::sqlite::SqlitePoolOptions;
|
||||
use sqlx::{
|
||||
query, sqlite::Sqlite, sqlite::SqliteRow, Column, Connection, Done, Executor, Row,
|
||||
SqliteConnection, SqlitePool, Statement, TypeInfo,
|
||||
query, sqlite::Sqlite, sqlite::SqliteRow, Column, Connection, Executor, Row, SqliteConnection,
|
||||
SqlitePool, Statement, TypeInfo,
|
||||
};
|
||||
use sqlx_test::new;
|
||||
|
||||
|
|
Loading…
Reference in a new issue