Merge pull request #405 from ebkalderon/master
Update serialization to serde v1.0
This commit is contained in:
commit
adbf511bc5
3 changed files with 30 additions and 23 deletions
|
@ -6,6 +6,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [v0.13.1] - 2017-04-22
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Update `serde` and `serde_derive` to version `1.0`.
|
||||||
|
|
||||||
## [v0.13.0] - 2017-04-14
|
## [v0.13.0] - 2017-04-14
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -238,7 +244,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
## v0.0.1 - 2014-06-24
|
## v0.0.1 - 2014-06-24
|
||||||
|
|
||||||
[Unreleased]: https://github.com/brendanzab/cgmath/compare/v0.13.0...HEAD
|
[Unreleased]: https://github.com/brendanzab/cgmath/compare/v0.13.1...HEAD
|
||||||
|
[v0.13.1]: https://github.com/brendanzab/cgmath/compare/v0.13.0...v0.13.1
|
||||||
[v0.12.0]: https://github.com/brendanzab/cgmath/compare/v0.12.0...v0.13.0
|
[v0.12.0]: https://github.com/brendanzab/cgmath/compare/v0.12.0...v0.13.0
|
||||||
[v0.12.0]: https://github.com/brendanzab/cgmath/compare/v0.11.0...v0.12.0
|
[v0.12.0]: https://github.com/brendanzab/cgmath/compare/v0.11.0...v0.12.0
|
||||||
[v0.11.0]: https://github.com/brendanzab/cgmath/compare/v0.10.0...v0.11.0
|
[v0.11.0]: https://github.com/brendanzab/cgmath/compare/v0.10.0...v0.11.0
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
|
|
||||||
name = "cgmath"
|
name = "cgmath"
|
||||||
version = "0.13.0"
|
version = "0.13.1"
|
||||||
authors = ["Brendan Zabarauskas <bjzaba@yahoo.com.au>",
|
authors = ["Brendan Zabarauskas <bjzaba@yahoo.com.au>",
|
||||||
"Brian Heylin",
|
"Brian Heylin",
|
||||||
"Colin Sherratt",
|
"Colin Sherratt",
|
||||||
|
@ -35,10 +35,10 @@ use_simd = ["simd"]
|
||||||
approx = "0.1"
|
approx = "0.1"
|
||||||
num-traits = "0.1"
|
num-traits = "0.1"
|
||||||
rand = "0.3"
|
rand = "0.3"
|
||||||
serde = { version = "0.9", optional = true }
|
serde = { version = "1.0", optional = true }
|
||||||
serde_derive = { version = "0.9", optional = true }
|
serde_derive = { version = "1.0", optional = true }
|
||||||
simd = { version = "0.2", optional = true }
|
simd = { version = "0.2", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
glium = "0.16"
|
glium = "0.16"
|
||||||
serde_json = "0.9"
|
serde_json = "1.0"
|
||||||
|
|
|
@ -224,13 +224,13 @@ mod eders_de {
|
||||||
Disp,
|
Disp,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Deserialize for DecomposedField {
|
impl<'a> Deserialize<'a> for DecomposedField {
|
||||||
fn deserialize<D>(deserializer: D) -> Result<DecomposedField, D::Error>
|
fn deserialize<D>(deserializer: D) -> Result<DecomposedField, D::Error>
|
||||||
where D: serde::Deserializer
|
where D: serde::Deserializer<'a>
|
||||||
{
|
{
|
||||||
struct DecomposedFieldVisitor;
|
struct DecomposedFieldVisitor;
|
||||||
|
|
||||||
impl serde::de::Visitor for DecomposedFieldVisitor {
|
impl<'b> serde::de::Visitor<'b> for DecomposedFieldVisitor {
|
||||||
type Value = DecomposedField;
|
type Value = DecomposedField;
|
||||||
|
|
||||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
@ -249,17 +249,17 @@ mod eders_de {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deserializer.deserialize(DecomposedFieldVisitor)
|
deserializer.deserialize_str(DecomposedFieldVisitor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<S: VectorSpace, R> Deserialize for Decomposed<S, R>
|
impl<'a, S: VectorSpace, R> Deserialize<'a> for Decomposed<S, R>
|
||||||
where S: Deserialize,
|
where S: Deserialize<'a>,
|
||||||
S::Scalar: Deserialize,
|
S::Scalar: Deserialize<'a>,
|
||||||
R: Deserialize
|
R: Deserialize<'a>
|
||||||
{
|
{
|
||||||
fn deserialize<D>(deserializer: D) -> Result<Decomposed<S, R>, D::Error>
|
fn deserialize<D>(deserializer: D) -> Result<Decomposed<S, R>, D::Error>
|
||||||
where D: serde::de::Deserializer
|
where D: serde::de::Deserializer<'a>
|
||||||
{
|
{
|
||||||
const FIELDS: &'static [&'static str] = &["scale", "rot", "disp"];
|
const FIELDS: &'static [&'static str] = &["scale", "rot", "disp"];
|
||||||
deserializer.deserialize_struct("Decomposed", FIELDS, DecomposedVisitor(PhantomData))
|
deserializer.deserialize_struct("Decomposed", FIELDS, DecomposedVisitor(PhantomData))
|
||||||
|
@ -268,10 +268,10 @@ mod eders_de {
|
||||||
|
|
||||||
struct DecomposedVisitor<S: VectorSpace, R>(PhantomData<(S, R)>);
|
struct DecomposedVisitor<S: VectorSpace, R>(PhantomData<(S, R)>);
|
||||||
|
|
||||||
impl<S: VectorSpace, R> serde::de::Visitor for DecomposedVisitor<S, R>
|
impl<'a, S: VectorSpace, R> serde::de::Visitor<'a> for DecomposedVisitor<S, R>
|
||||||
where S: Deserialize,
|
where S: Deserialize<'a>,
|
||||||
S::Scalar: Deserialize,
|
S::Scalar: Deserialize<'a>,
|
||||||
R: Deserialize
|
R: Deserialize<'a>
|
||||||
{
|
{
|
||||||
type Value = Decomposed<S, R>;
|
type Value = Decomposed<S, R>;
|
||||||
|
|
||||||
|
@ -280,22 +280,22 @@ mod eders_de {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_map<V>(self, mut visitor: V) -> Result<Decomposed<S, R>, V::Error>
|
fn visit_map<V>(self, mut visitor: V) -> Result<Decomposed<S, R>, V::Error>
|
||||||
where V: serde::de::MapVisitor
|
where V: serde::de::MapAccess<'a>
|
||||||
{
|
{
|
||||||
let mut scale = None;
|
let mut scale = None;
|
||||||
let mut rot = None;
|
let mut rot = None;
|
||||||
let mut disp = None;
|
let mut disp = None;
|
||||||
|
|
||||||
while let Some(key) = visitor.visit_key()? {
|
while let Some(key) = visitor.next_key()? {
|
||||||
match key {
|
match key {
|
||||||
DecomposedField::Scale => {
|
DecomposedField::Scale => {
|
||||||
scale = Some(visitor.visit_value()?);
|
scale = Some(visitor.next_value()?);
|
||||||
}
|
}
|
||||||
DecomposedField::Rot => {
|
DecomposedField::Rot => {
|
||||||
rot = Some(visitor.visit_value()?);
|
rot = Some(visitor.next_value()?);
|
||||||
}
|
}
|
||||||
DecomposedField::Disp => {
|
DecomposedField::Disp => {
|
||||||
disp = Some(visitor.visit_value()?);
|
disp = Some(visitor.next_value()?);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue