From 68daaf86f654544e01adf27d561505c62cc90688 Mon Sep 17 00:00:00 2001 From: Devin R Date: Mon, 20 Apr 2020 09:11:41 -0400 Subject: [PATCH] update to 2018 edition, import in ruma style --- Cargo.toml | 12 +++++------- src/de.rs | 14 +++++--------- src/lib.rs | 8 -------- src/ser/key.rs | 9 ++++----- src/ser/mod.rs | 9 +++------ src/ser/pair.rs | 5 +---- src/ser/part.rs | 9 +++++---- src/ser/seq.rs | 0 src/ser/value.rs | 10 +++++----- tests/test_deserialize.rs | 4 +--- tests/test_serialize.rs | 15 ++++++++++++--- 11 files changed, 41 insertions(+), 54 deletions(-) create mode 100644 src/ser/seq.rs diff --git a/Cargo.toml b/Cargo.toml index d1f6845c..e7ff528c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ description = "`x-www-form-urlencoded` meets Serde" categories = ["encoding", "web-programming"] keywords = ["serde", "serialization", "urlencoded"] exclude = ["/.travis.yml", "/bors.toml"] +edition = "2018" [badges] travis-ci = {repository = "nox/serde_urlencoded"} @@ -17,10 +18,7 @@ travis-ci = {repository = "nox/serde_urlencoded"} test = false [dependencies] -dtoa = "0.4.0" -itoa = "0.4.0" -serde = "1.0.0" -url = "2.0.0" - -[dev-dependencies] -serde_derive = "1.0" +dtoa = "0.4.5" +itoa = "0.4.5" +serde = { version = "1.0.106", features = ["derive"] } +url = "2.1.1" diff --git a/src/de.rs b/src/de.rs index 813bcf7e..fe2e0086 100644 --- a/src/de.rs +++ b/src/de.rs @@ -1,12 +1,8 @@ //! Deserialization support for the `application/x-www-form-urlencoded` format. +use std::{borrow::Cow, io::Read}; -use serde::de::value::MapDeserializer; -use serde::de::Error as de_Error; -use serde::de::{self, IntoDeserializer}; -use std::borrow::Cow; -use std::io::Read; -use url::form_urlencoded::parse; -use url::form_urlencoded::Parse as UrlEncodedParse; +use serde::de::{self, value::MapDeserializer, Error as de_Error, IntoDeserializer}; +use url::form_urlencoded::{parse, Parse as UrlEncodedParse}; #[doc(inline)] pub use serde::de::value::Error; @@ -123,7 +119,7 @@ impl<'de> de::Deserializer<'de> for Deserializer<'de> { visitor.visit_unit() } - forward_to_deserialize_any! { + serde::forward_to_deserialize_any! { bool u8 u16 @@ -230,7 +226,7 @@ impl<'de> de::Deserializer<'de> for Part<'de> { visitor.visit_newtype_struct(self) } - forward_to_deserialize_any! { + serde::forward_to_deserialize_any! { char str string diff --git a/src/lib.rs b/src/lib.rs index 776ae54a..9eb39786 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,13 +1,5 @@ //! `x-www-form-urlencoded` meets Serde -#![warn(unused_extern_crates)] - -extern crate dtoa; -extern crate itoa; -#[macro_use] -extern crate serde; -extern crate url; - pub mod de; pub mod ser; diff --git a/src/ser/key.rs b/src/ser/key.rs index 2a2e63ac..5a5e1fc7 100644 --- a/src/ser/key.rs +++ b/src/ser/key.rs @@ -1,9 +1,8 @@ -use ser::part::Sink; -use ser::Error; -use serde::Serialize; -use std::borrow::Cow; -use std::ops::Deref; +use std::{borrow::Cow, ops::Deref}; +use serde::Serialize; + +use crate::ser::{part::Sink, Error}; pub enum Key<'key> { Static(&'static str), Dynamic(Cow<'key, str>), diff --git a/src/ser/mod.rs b/src/ser/mod.rs index 4e21fb8d..1a816d5a 100644 --- a/src/ser/mod.rs +++ b/src/ser/mod.rs @@ -5,13 +5,10 @@ mod pair; mod part; mod value; +use std::{borrow::Cow, error, fmt, str}; + use serde::ser; -use std::borrow::Cow; -use std::error; -use std::fmt; -use std::str; -use url::form_urlencoded::Serializer as UrlEncodedSerializer; -use url::form_urlencoded::Target as UrlEncodedTarget; +use url::form_urlencoded::{Serializer as UrlEncodedSerializer, Target as UrlEncodedTarget}; /// Serializes a value into a `application/x-www-form-urlencoded` `String` buffer. /// diff --git a/src/ser/pair.rs b/src/ser/pair.rs index e7235e43..95c06e90 100644 --- a/src/ser/pair.rs +++ b/src/ser/pair.rs @@ -1,13 +1,10 @@ -use ser::key::KeySink; -use ser::part::PartSerializer; -use ser::value::ValueSink; -use ser::Error; use serde::ser; use std::borrow::Cow; use std::mem; use url::form_urlencoded::Serializer as UrlEncodedSerializer; use url::form_urlencoded::Target as UrlEncodedTarget; +use crate::ser::{Error, part::PartSerializer, key::KeySink, value::ValueSink}; pub struct PairSerializer<'input, 'target, Target: 'target + UrlEncodedTarget> { urlencoder: &'target mut UrlEncodedSerializer<'input, Target>, state: PairState, diff --git a/src/ser/part.rs b/src/ser/part.rs index f72846cc..5e0d64c9 100644 --- a/src/ser/part.rs +++ b/src/ser/part.rs @@ -1,9 +1,10 @@ -use dtoa; -use itoa; -use ser::Error; -use serde::ser; use std::str; +use dtoa; +use itoa; +use serde::ser; + +use crate::ser::Error; pub struct PartSerializer { sink: S, } diff --git a/src/ser/seq.rs b/src/ser/seq.rs new file mode 100644 index 00000000..e69de29b diff --git a/src/ser/value.rs b/src/ser/value.rs index fc12076a..1ac02df2 100644 --- a/src/ser/value.rs +++ b/src/ser/value.rs @@ -1,9 +1,9 @@ -use ser::part::{PartSerializer, Sink}; -use ser::Error; -use serde::ser::Serialize; use std::str; -use url::form_urlencoded::Serializer as UrlEncodedSerializer; -use url::form_urlencoded::Target as UrlEncodedTarget; + +use serde::Serialize; +use url::form_urlencoded::{Serializer as UrlEncodedSerializer, Target as UrlEncodedTarget}; + +use crate::ser::{part::{PartSerializer, Sink}, Error}; pub struct ValueSink<'input, 'key, 'target, Target> where diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs index bb276217..c40a03cc 100644 --- a/tests/test_deserialize.rs +++ b/tests/test_deserialize.rs @@ -1,6 +1,4 @@ -extern crate serde_urlencoded; -#[macro_use] -extern crate serde_derive; +use serde::Deserialize; #[derive(Deserialize, Debug, PartialEq)] struct NewType(T); diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs index 60c6ff74..630b6d9f 100644 --- a/tests/test_serialize.rs +++ b/tests/test_serialize.rs @@ -1,10 +1,19 @@ -extern crate serde_urlencoded; -#[macro_use] -extern crate serde_derive; +use serde::Serialize; #[derive(Serialize)] struct NewType(T); +#[derive(Serialize)] +struct NewStruct { + list: Vec, +} + +#[test] +fn serialize_newstruct() { + let s = NewStruct { list: vec![ "hello".into() ] }; + println!("{:?}", serde_urlencoded::to_string(s)); +} + #[test] fn serialize_newtype_i32() { let params = &[("field", Some(NewType(11)))];