Move code

This commit is contained in:
Chris Tsang 2021-05-24 22:29:17 +08:00
parent 6951ce26fd
commit 1a780d8e4f
4 changed files with 33 additions and 30 deletions

View File

@ -2,16 +2,10 @@ mod select;
pub use select::*;
use crate::{DatabaseConnection, QueryResult, TypeErr};
use crate::{Statement, DatabaseConnection, QueryResult, TypeErr};
use async_trait::async_trait;
use sea_query::{inject_parameters, MySqlQueryBuilder, Values};
use std::{error::Error, fmt};
pub struct Statement {
pub sql: String,
pub values: Values,
}
#[async_trait]
pub trait Connector {
fn accepts(string: &str) -> bool;
@ -32,28 +26,6 @@ pub struct QueryErr;
#[derive(Debug)]
pub struct ConnectionErr;
// Statement //
impl From<(String, Values)> for Statement {
fn from(stmt: (String, Values)) -> Statement {
Statement {
sql: stmt.0,
values: stmt.1,
}
}
}
impl fmt::Display for Statement {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let string = inject_parameters(
&self.sql,
self.values.0.clone(),
&MySqlQueryBuilder::default(),
);
write!(f, "{}", &string)
}
}
// QueryErr //
impl Error for QueryErr {}

View File

@ -1,3 +1,7 @@
mod statement;
pub use statement::*;
use crate::{Connection, ConnectionErr, Connector, SqlxMySqlConnector, SqlxMySqlPoolConnection};
use sea_query::{GenericBuilder, MySqlQueryBuilder};

27
src/database/statement.rs Normal file
View File

@ -0,0 +1,27 @@
use sea_query::{inject_parameters, MySqlQueryBuilder, Values};
use std::{fmt};
pub struct Statement {
pub sql: String,
pub values: Values,
}
impl From<(String, Values)> for Statement {
fn from(stmt: (String, Values)) -> Statement {
Statement {
sql: stmt.0,
values: stmt.1,
}
}
}
impl fmt::Display for Statement {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let string = inject_parameters(
&self.sql,
self.values.0.clone(),
&MySqlQueryBuilder::default(),
);
write!(f, "{}", &string)
}
}

View File

@ -4,7 +4,7 @@ use sqlx::{mysql::MySqlRow, MySqlPool};
sea_query::sea_query_driver_mysql!();
use sea_query_driver_mysql::bind_query;
use crate::{connector::*, debug_print, query::*, DatabaseConnection};
use crate::{connector::*, debug_print, query::*, Statement, DatabaseConnection};
pub struct SqlxMySqlConnector;