Move types out to postgres-shared
This commit is contained in:
parent
e675ee71c5
commit
d08dc136bc
@ -9,7 +9,7 @@ mod sqlstate;
|
||||
mod type_gen;
|
||||
|
||||
fn main() {
|
||||
let path = Path::new("..");
|
||||
let path = Path::new("../postgres-shared/src");
|
||||
sqlstate::build(path);
|
||||
type_gen::build(path);
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ struct Code {
|
||||
}
|
||||
|
||||
pub fn build(path: &Path) {
|
||||
let mut file = BufWriter::new(File::create(path.join("postgres-shared/src/error/sqlstate.rs")).unwrap());
|
||||
let mut file = BufWriter::new(File::create(path.join("error/sqlstate.rs")).unwrap());
|
||||
|
||||
let codes = parse_codes();
|
||||
|
||||
|
@ -20,7 +20,7 @@ struct Type {
|
||||
}
|
||||
|
||||
pub fn build(path: &Path) {
|
||||
let mut file = BufWriter::new(File::create(path.join("postgres/src/types/type_gen.rs")).unwrap());
|
||||
let mut file = BufWriter::new(File::create(path.join("types/type_gen.rs")).unwrap());
|
||||
|
||||
let ranges = parse_ranges();
|
||||
let types = parse_types(&ranges);
|
||||
|
@ -3,8 +3,23 @@ name = "postgres-shared"
|
||||
version = "0.1.0"
|
||||
authors = ["Steven Fackler <sfackler@gmail.com>"]
|
||||
|
||||
[features]
|
||||
with-bit-vec = ["bit-vec"]
|
||||
with-chrono = ["chrono"]
|
||||
with-eui48 = ["eui48"]
|
||||
with-serde_json = ["serde_json"]
|
||||
with-time = ["time"]
|
||||
with-uuid = ["uuid"]
|
||||
|
||||
[dependencies]
|
||||
hex = "0.2"
|
||||
fallible-iterator = "0.1.3"
|
||||
phf = "=0.7.20"
|
||||
postgres-protocol = "0.2"
|
||||
|
||||
bit-vec = { version = "0.4", optional = true }
|
||||
chrono = { version = "0.2.14", optional = true }
|
||||
eui48 = { version = "0.1", optional = true }
|
||||
serde_json = { version = ">= 0.6, < 0.9", optional = true }
|
||||
time = { version = "0.1.14", optional = true }
|
||||
uuid = { version = ">= 0.1, < 0.4", optional = true }
|
||||
|
@ -10,6 +10,7 @@ use std::ops::Range;
|
||||
|
||||
pub mod error;
|
||||
pub mod params;
|
||||
pub mod types;
|
||||
|
||||
pub struct RowData {
|
||||
buf: Vec<u8>,
|
||||
|
@ -1,5 +1,3 @@
|
||||
//! Traits dealing with Postgres data types
|
||||
|
||||
use fallible_iterator::FallibleIterator;
|
||||
use postgres_protocol;
|
||||
use postgres_protocol::types::{self, ArrayDimension};
|
||||
@ -13,7 +11,6 @@ pub use postgres_protocol::Oid;
|
||||
|
||||
pub use self::type_gen::Type;
|
||||
pub use self::special::{Date, Timestamp};
|
||||
use {SessionInfoNew, OtherNew, WrongTypeNew, FieldNew};
|
||||
|
||||
/// Generates a simple implementation of `ToSql::accepts` which accepts the
|
||||
/// types passed to it.
|
||||
@ -88,8 +85,9 @@ pub struct SessionInfo<'a> {
|
||||
parameters: &'a HashMap<String, String>,
|
||||
}
|
||||
|
||||
impl<'a> SessionInfoNew<'a> for SessionInfo<'a> {
|
||||
fn new(parameters: &'a HashMap<String, String>) -> SessionInfo<'a> {
|
||||
impl<'a> SessionInfo<'a> {
|
||||
#[doc(hidden)]
|
||||
pub fn new(parameters: &'a HashMap<String, String>) -> SessionInfo<'a> {
|
||||
SessionInfo { parameters: parameters }
|
||||
}
|
||||
}
|
||||
@ -142,8 +140,9 @@ impl Field {
|
||||
}
|
||||
}
|
||||
|
||||
impl FieldNew for Field {
|
||||
fn new(name: String, type_: Type) -> Field {
|
||||
impl Field {
|
||||
#[doc(hidden)]
|
||||
pub fn new(name: String, type_: Type) -> Field {
|
||||
Field {
|
||||
name: name,
|
||||
type_: type_,
|
||||
@ -174,8 +173,9 @@ struct OtherInner {
|
||||
schema: String,
|
||||
}
|
||||
|
||||
impl OtherNew for Other {
|
||||
fn new(name: String, oid: Oid, kind: Kind, schema: String) -> Other {
|
||||
impl Other {
|
||||
#[doc(hidden)]
|
||||
pub fn new(name: String, oid: Oid, kind: Kind, schema: String) -> Other {
|
||||
Other(Arc::new(OtherInner {
|
||||
name: name,
|
||||
oid: oid,
|
||||
@ -243,8 +243,9 @@ impl Error for WrongType {
|
||||
}
|
||||
}
|
||||
|
||||
impl WrongTypeNew for WrongType {
|
||||
fn new(ty: Type) -> WrongType {
|
||||
impl WrongType {
|
||||
#[doc(hidden)]
|
||||
pub fn new(ty: Type) -> WrongType {
|
||||
WrongType(ty)
|
||||
}
|
||||
}
|
@ -21,17 +21,18 @@ name = "test"
|
||||
path = "tests/test.rs"
|
||||
|
||||
[features]
|
||||
with-bit-vec = ["bit-vec"]
|
||||
with-chrono = ["chrono"]
|
||||
with-eui48 = ["eui48"]
|
||||
with-bit-vec = ["postgres-shared/with-bit-vec"]
|
||||
with-chrono = ["postgres-shared/with-chrono"]
|
||||
with-eui48 = ["postgres-shared/with-eui48"]
|
||||
with-serde_json = ["postgres-shared/with-serde_json"]
|
||||
with-time = ["postgres-shared/time"]
|
||||
with-uuid = ["postgres-shared/with-uuid"]
|
||||
|
||||
with-openssl = ["openssl"]
|
||||
with-native-tls = ["native-tls"]
|
||||
with-rustc-serialize = ["rustc-serialize"]
|
||||
with-schannel = ["schannel"]
|
||||
with-security-framework = ["security-framework"]
|
||||
with-serde_json = ["serde_json"]
|
||||
with-time = ["time"]
|
||||
with-uuid = ["uuid"]
|
||||
|
||||
no-logging = []
|
||||
|
||||
@ -41,17 +42,12 @@ fallible-iterator = "0.1.3"
|
||||
hex = "0.2"
|
||||
log = "0.3"
|
||||
postgres-protocol = "0.2"
|
||||
bit-vec = { version = "0.4", optional = true }
|
||||
chrono = { version = "0.2.14", optional = true }
|
||||
eui48 = { version = "0.1", optional = true }
|
||||
|
||||
openssl = { version = "0.9", optional = true }
|
||||
native-tls = { version = "0.1", optional = true }
|
||||
rustc-serialize = { version = "0.3", optional = true }
|
||||
schannel = { version = "0.1", optional = true }
|
||||
security-framework = { version = "0.1.2", optional = true }
|
||||
serde_json = { version = ">= 0.6, < 0.9", optional = true }
|
||||
time = { version = "0.1.14", optional = true }
|
||||
uuid = { version = ">= 0.1, < 0.4", optional = true }
|
||||
|
||||
postgres-shared = { path = "../postgres-shared" }
|
||||
|
||||
|
@ -77,6 +77,8 @@ extern crate hex;
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate postgres_protocol;
|
||||
#[macro_use]
|
||||
#[macro_export]
|
||||
extern crate postgres_shared;
|
||||
|
||||
use fallible_iterator::FallibleIterator;
|
||||
@ -101,7 +103,7 @@ use priv_io::MessageStream;
|
||||
use rows::{Rows, LazyRows};
|
||||
use stmt::{Statement, Column};
|
||||
use transaction::{Transaction, IsolationLevel};
|
||||
use types::{IsNull, Kind, Type, SessionInfo, Oid, Other, WrongType, ToSql, FromSql, Field};
|
||||
use types::{IsNull, Kind, Type, SessionInfo, Oid, Other, ToSql, FromSql, Field};
|
||||
|
||||
#[macro_use]
|
||||
mod macros;
|
||||
@ -1360,10 +1362,6 @@ trait LazyRowsNew<'trans, 'stmt> {
|
||||
-> LazyRows<'trans, 'stmt>;
|
||||
}
|
||||
|
||||
trait SessionInfoNew<'a> {
|
||||
fn new(params: &'a HashMap<String, String>) -> SessionInfo<'a>;
|
||||
}
|
||||
|
||||
trait StatementInternals<'conn> {
|
||||
fn new(conn: &'conn Connection,
|
||||
info: Arc<StatementInfo>,
|
||||
@ -1384,14 +1382,6 @@ trait NotificationsNew<'conn> {
|
||||
fn new(conn: &'conn Connection) -> Notifications<'conn>;
|
||||
}
|
||||
|
||||
trait WrongTypeNew {
|
||||
fn new(ty: Type) -> WrongType;
|
||||
}
|
||||
|
||||
trait FieldNew {
|
||||
fn new(name: String, type_: Type) -> Field;
|
||||
}
|
||||
|
||||
trait TransactionInternals<'conn> {
|
||||
fn new(conn: &'conn Connection, depth: u32) -> Transaction<'conn>;
|
||||
|
||||
|
@ -10,7 +10,7 @@ use std::io;
|
||||
use std::ops::Deref;
|
||||
use std::slice;
|
||||
|
||||
use {Result, SessionInfoNew, RowsNew, LazyRowsNew, StatementInternals, WrongTypeNew};
|
||||
use {Result, RowsNew, LazyRowsNew, StatementInternals};
|
||||
use transaction::Transaction;
|
||||
use types::{FromSql, SessionInfo, WrongType};
|
||||
use stmt::{Statement, Column};
|
||||
|
@ -14,7 +14,7 @@ use types::{SessionInfo, Type, ToSql};
|
||||
use rows::{Rows, LazyRows};
|
||||
use transaction::Transaction;
|
||||
use {bad_response, err, Connection, StatementInternals, Result, RowsNew, InnerConnection,
|
||||
SessionInfoNew, LazyRowsNew, ColumnNew, StatementInfo, TransactionInternals};
|
||||
LazyRowsNew, ColumnNew, StatementInfo, TransactionInternals};
|
||||
|
||||
/// A prepared statement.
|
||||
pub struct Statement<'conn> {
|
||||
|
4
postgres/src/types.rs
Normal file
4
postgres/src/types.rs
Normal file
@ -0,0 +1,4 @@
|
||||
//! Traits dealing with Postgres data types
|
||||
|
||||
#[doc(inline)]
|
||||
pub use postgres_shared::types::*;
|
Loading…
Reference in New Issue
Block a user