Release postgres-types v0.2.0

This commit is contained in:
Steven Fackler 2020-12-25 09:01:11 -05:00
parent 06dcebf248
commit 71fc3e74bd
6 changed files with 12 additions and 87 deletions

View File

@ -1,5 +1,15 @@
# Change Log
## v0.2.0 - 2020-12-25
### Changed
* Upgraded `bytes` to 1.0.
### Removed
* Removed support for `geo-types` 0.4.
## v0.1.3 - 2020-10-17
### Added

View File

@ -1,6 +1,6 @@
[package]
name = "postgres-types"
version = "0.1.3"
version = "0.2.0"
authors = ["Steven Fackler <sfackler@gmail.com>"]
edition = "2018"
license = "MIT/Apache-2.0"
@ -15,7 +15,6 @@ derive = ["postgres-derive"]
with-bit-vec-0_6 = ["bit-vec-06"]
with-chrono-0_4 = ["chrono-04"]
with-eui48-0_4 = ["eui48-04"]
with-geo-types-0_4 = ["geo-types-04"]
with-geo-types-0_6 = ["geo-types-06"]
with-serde_json-1 = ["serde-1", "serde_json-1"]
with-uuid-0_8 = ["uuid-08"]
@ -30,7 +29,6 @@ postgres-derive = { version = "0.4.0", optional = true, path = "../postgres-deri
bit-vec-06 = { version = "0.6", package = "bit-vec", optional = true }
chrono-04 = { version = "0.4.16", package = "chrono", default-features = false, features = ["clock"], optional = true }
eui48-04 = { version = "0.4", package = "eui48", optional = true }
geo-types-04 = { version = "0.4", package = "geo-types", optional = true }
geo-types-06 = { version = "0.6", package = "geo-types", optional = true }
serde-1 = { version = "1.0", package = "serde", optional = true }
serde_json-1 = { version = "1.0", package = "serde_json", optional = true }

View File

@ -1,78 +0,0 @@
use bytes::BytesMut;
use fallible_iterator::FallibleIterator;
use geo_types_04::{Coordinate, LineString, Point, Rect};
use postgres_protocol::types;
use std::error::Error;
use crate::{FromSql, IsNull, ToSql, Type};
impl<'a> FromSql<'a> for Point<f64> {
fn from_sql(_: &Type, raw: &[u8]) -> Result<Self, Box<dyn Error + Sync + Send>> {
let point = types::point_from_sql(raw)?;
Ok(Point::new(point.x(), point.y()))
}
accepts!(POINT);
}
impl ToSql for Point<f64> {
fn to_sql(&self, _: &Type, out: &mut BytesMut) -> Result<IsNull, Box<dyn Error + Sync + Send>> {
types::point_to_sql(self.x(), self.y(), out);
Ok(IsNull::No)
}
accepts!(POINT);
to_sql_checked!();
}
impl<'a> FromSql<'a> for Rect<f64> {
fn from_sql(_: &Type, raw: &[u8]) -> Result<Self, Box<dyn Error + Sync + Send>> {
let rect = types::box_from_sql(raw)?;
Ok(Rect {
min: Coordinate {
x: rect.lower_left().x(),
y: rect.lower_left().y(),
},
max: Coordinate {
x: rect.upper_right().x(),
y: rect.upper_right().y(),
},
})
}
accepts!(BOX);
}
impl ToSql for Rect<f64> {
fn to_sql(&self, _: &Type, out: &mut BytesMut) -> Result<IsNull, Box<dyn Error + Sync + Send>> {
types::box_to_sql(self.min.x, self.min.y, self.max.x, self.max.y, out);
Ok(IsNull::No)
}
accepts!(BOX);
to_sql_checked!();
}
impl<'a> FromSql<'a> for LineString<f64> {
fn from_sql(_: &Type, raw: &[u8]) -> Result<Self, Box<dyn Error + Sync + Send>> {
let path = types::path_from_sql(raw)?;
let points = path
.points()
.map(|p| Ok(Coordinate { x: p.x(), y: p.y() }))
.collect()?;
Ok(LineString(points))
}
accepts!(PATH);
}
impl ToSql for LineString<f64> {
fn to_sql(&self, _: &Type, out: &mut BytesMut) -> Result<IsNull, Box<dyn Error + Sync + Send>> {
let closed = false; // always encode an open path from LineString
types::path_to_sql(closed, self.0.iter().map(|p| (p.x, p.y)), out)?;
Ok(IsNull::No)
}
accepts!(PATH);
to_sql_checked!();
}

View File

@ -191,8 +191,6 @@ mod bit_vec_06;
mod chrono_04;
#[cfg(feature = "with-eui48-0_4")]
mod eui48_04;
#[cfg(feature = "with-geo-types-0_4")]
mod geo_types_04;
#[cfg(feature = "with-geo-types-0_6")]
mod geo_types_06;
#[cfg(feature = "with-serde_json-1")]

View File

@ -24,7 +24,6 @@ circle-ci = { repository = "sfackler/rust-postgres" }
with-bit-vec-0_6 = ["tokio-postgres/with-bit-vec-0_6"]
with-chrono-0_4 = ["tokio-postgres/with-chrono-0_4"]
with-eui48-0_4 = ["tokio-postgres/with-eui48-0_4"]
with-geo-types-0_4 = ["tokio-postgres/with-geo-types-0_4"]
with-geo-types-0_6 = ["tokio-postgres/with-geo-types-0_6"]
with-serde_json-1 = ["tokio-postgres/with-serde_json-1"]
with-uuid-0_8 = ["tokio-postgres/with-uuid-0_8"]

View File

@ -30,7 +30,6 @@ runtime = ["tokio/net", "tokio/time"]
with-bit-vec-0_6 = ["postgres-types/with-bit-vec-0_6"]
with-chrono-0_4 = ["postgres-types/with-chrono-0_4"]
with-eui48-0_4 = ["postgres-types/with-eui48-0_4"]
with-geo-types-0_4 = ["postgres-types/with-geo-types-0_4"]
with-geo-types-0_6 = ["postgres-types/with-geo-types-0_6"]
with-serde_json-1 = ["postgres-types/with-serde_json-1"]
with-uuid-0_8 = ["postgres-types/with-uuid-0_8"]
@ -48,7 +47,7 @@ percent-encoding = "2.0"
pin-project-lite = "0.2"
phf = "0.8"
postgres-protocol = { version = "0.6.0", path = "../postgres-protocol" }
postgres-types = { version = "0.1.2", path = "../postgres-types" }
postgres-types = { version = "0.2.0", path = "../postgres-types" }
socket2 = "0.3"
tokio = { version = "1.0", features = ["io-util"] }
tokio-util = { version = "0.6", features = ["codec"] }
@ -61,7 +60,6 @@ criterion = "0.3"
bit-vec-06 = { version = "0.6", package = "bit-vec" }
chrono-04 = { version = "0.4", package = "chrono", default-features = false }
eui48-04 = { version = "0.4", package = "eui48" }
geo-types-04 = { version = "0.4", package = "geo-types" }
geo-types-06 = { version = "0.6", package = "geo-types" }
serde-1 = { version = "1.0", package = "serde" }
serde_json-1 = { version = "1.0", package = "serde_json" }