mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-28 21:57:56 +00:00
Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 43a9f59c18 | |||
| ff70409215 | |||
| 97a98a7031 | |||
| 533fb9cc44 | |||
| 59b99d2d60 | |||
| c796daed7c | |||
| 6e2c385fa5 | |||
| 4eb580790d | |||
| a2c83d754b | |||
| 6f946b20ec | |||
| 2ceabad360 | |||
| a00aee1495 | |||
| 4e31c9984d | |||
| b8772a1e40 | |||
| 42990d8264 | |||
| cf31418555 | |||
| 5db72b8ad9 | |||
| fe8f8bcf7b | |||
| d4d737de8d | |||
| 52f6e96ee8 | |||
| 44fa7b0f6b | |||
| bda561df4e | |||
| 8955420baf | |||
| 21ee256911 |
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.101" # remember to update html_root_url
|
version = "1.0.103" # remember to update html_root_url and serde_derive dependency
|
||||||
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
description = "A generic serialization/deserialization framework"
|
description = "A generic serialization/deserialization framework"
|
||||||
@@ -18,7 +18,7 @@ travis-ci = { repository = "serde-rs/serde" }
|
|||||||
appveyor = { repository = "serde-rs/serde" }
|
appveyor = { repository = "serde-rs/serde" }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde_derive = { version = "1.0", optional = true, path = "../serde_derive" }
|
serde_derive = { version = "=1.0.103", optional = true, path = "../serde_derive" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
serde_derive = { version = "1.0", path = "../serde_derive" }
|
serde_derive = { version = "1.0", path = "../serde_derive" }
|
||||||
|
|||||||
+3
-1
@@ -29,10 +29,12 @@ fn main() {
|
|||||||
println!("cargo:rustc-cfg=core_reverse");
|
println!("cargo:rustc-cfg=core_reverse");
|
||||||
}
|
}
|
||||||
|
|
||||||
// CString::into_boxed_c_str stabilized in Rust 1.20:
|
// CString::into_boxed_c_str and PathBuf::into_boxed_path stabilized in Rust 1.20:
|
||||||
// https://doc.rust-lang.org/std/ffi/struct.CString.html#method.into_boxed_c_str
|
// https://doc.rust-lang.org/std/ffi/struct.CString.html#method.into_boxed_c_str
|
||||||
|
// https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.into_boxed_path
|
||||||
if minor >= 20 {
|
if minor >= 20 {
|
||||||
println!("cargo:rustc-cfg=de_boxed_c_str");
|
println!("cargo:rustc-cfg=de_boxed_c_str");
|
||||||
|
println!("cargo:rustc-cfg=de_boxed_path");
|
||||||
}
|
}
|
||||||
|
|
||||||
// From<Box<T>> for Rc<T> / Arc<T> stabilized in Rust 1.21:
|
// From<Box<T>> for Rc<T> / Arc<T> stabilized in Rust 1.21:
|
||||||
|
|||||||
@@ -1580,6 +1580,24 @@ impl<'de> Visitor<'de> for PathBufVisitor {
|
|||||||
{
|
{
|
||||||
Ok(From::from(v))
|
Ok(From::from(v))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
|
||||||
|
where
|
||||||
|
E: Error,
|
||||||
|
{
|
||||||
|
str::from_utf8(v)
|
||||||
|
.map(From::from)
|
||||||
|
.map_err(|_| Error::invalid_value(Unexpected::Bytes(v), &self))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>
|
||||||
|
where
|
||||||
|
E: Error,
|
||||||
|
{
|
||||||
|
String::from_utf8(v)
|
||||||
|
.map(From::from)
|
||||||
|
.map_err(|e| Error::invalid_value(Unexpected::Bytes(&e.into_bytes()), &self))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "std")]
|
||||||
@@ -1592,6 +1610,9 @@ impl<'de> Deserialize<'de> for PathBuf {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(all(feature = "std", de_boxed_path))]
|
||||||
|
forwarded_impl!((), Box<Path>, PathBuf::into_boxed_path);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// If this were outside of the serde crate, it would just use:
|
// If this were outside of the serde crate, it would just use:
|
||||||
|
|||||||
+6
-2
@@ -75,14 +75,14 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Serde types in rustdoc of other crates get linked to here.
|
// Serde types in rustdoc of other crates get linked to here.
|
||||||
#![doc(html_root_url = "https://docs.rs/serde/1.0.101")]
|
#![doc(html_root_url = "https://docs.rs/serde/1.0.103")]
|
||||||
// Support using Serde without the standard library!
|
// Support using Serde without the standard library!
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
#![cfg_attr(not(feature = "std"), no_std)]
|
||||||
// Unstable functionality only if the user asks for it. For tracking and
|
// Unstable functionality only if the user asks for it. For tracking and
|
||||||
// discussion of these features please refer to this issue:
|
// discussion of these features please refer to this issue:
|
||||||
//
|
//
|
||||||
// https://github.com/serde-rs/serde/issues/812
|
// https://github.com/serde-rs/serde/issues/812
|
||||||
#![cfg_attr(feature = "unstable", feature(specialization, never_type))]
|
#![cfg_attr(feature = "unstable", feature(specialization))]
|
||||||
#![allow(unknown_lints, bare_trait_objects, deprecated)]
|
#![allow(unknown_lints, bare_trait_objects, deprecated)]
|
||||||
#![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
|
#![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
|
||||||
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
||||||
@@ -112,6 +112,10 @@
|
|||||||
too_many_lines,
|
too_many_lines,
|
||||||
// preference
|
// preference
|
||||||
doc_markdown,
|
doc_markdown,
|
||||||
|
// false positive
|
||||||
|
needless_doctest_main,
|
||||||
|
// noisy
|
||||||
|
must_use_candidate,
|
||||||
)
|
)
|
||||||
)]
|
)]
|
||||||
// Rustc lints.
|
// Rustc lints.
|
||||||
|
|||||||
@@ -2510,6 +2510,13 @@ mod content {
|
|||||||
{
|
{
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn visit_none<E>(self) -> Result<(), E>
|
||||||
|
where
|
||||||
|
E: de::Error,
|
||||||
|
{
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+22
-22
@@ -1032,7 +1032,7 @@ impl<'a, M> FlatMapSerializer<'a, M>
|
|||||||
where
|
where
|
||||||
M: SerializeMap + 'a,
|
M: SerializeMap + 'a,
|
||||||
{
|
{
|
||||||
fn bad_type(self, what: Unsupported) -> M::Error {
|
fn bad_type(what: Unsupported) -> M::Error {
|
||||||
ser::Error::custom(format_args!(
|
ser::Error::custom(format_args!(
|
||||||
"can only flatten structs and maps (got {})",
|
"can only flatten structs and maps (got {})",
|
||||||
what
|
what
|
||||||
@@ -1057,59 +1057,59 @@ where
|
|||||||
type SerializeStructVariant = FlatMapSerializeStructVariantAsMapValue<'a, M>;
|
type SerializeStructVariant = FlatMapSerializeStructVariantAsMapValue<'a, M>;
|
||||||
|
|
||||||
fn serialize_bool(self, _: bool) -> Result<Self::Ok, Self::Error> {
|
fn serialize_bool(self, _: bool) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Boolean))
|
Err(Self::bad_type(Unsupported::Boolean))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_i8(self, _: i8) -> Result<Self::Ok, Self::Error> {
|
fn serialize_i8(self, _: i8) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_i16(self, _: i16) -> Result<Self::Ok, Self::Error> {
|
fn serialize_i16(self, _: i16) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_i32(self, _: i32) -> Result<Self::Ok, Self::Error> {
|
fn serialize_i32(self, _: i32) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_i64(self, _: i64) -> Result<Self::Ok, Self::Error> {
|
fn serialize_i64(self, _: i64) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_u8(self, _: u8) -> Result<Self::Ok, Self::Error> {
|
fn serialize_u8(self, _: u8) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_u16(self, _: u16) -> Result<Self::Ok, Self::Error> {
|
fn serialize_u16(self, _: u16) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_u32(self, _: u32) -> Result<Self::Ok, Self::Error> {
|
fn serialize_u32(self, _: u32) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_u64(self, _: u64) -> Result<Self::Ok, Self::Error> {
|
fn serialize_u64(self, _: u64) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Integer))
|
Err(Self::bad_type(Unsupported::Integer))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_f32(self, _: f32) -> Result<Self::Ok, Self::Error> {
|
fn serialize_f32(self, _: f32) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Float))
|
Err(Self::bad_type(Unsupported::Float))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_f64(self, _: f64) -> Result<Self::Ok, Self::Error> {
|
fn serialize_f64(self, _: f64) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Float))
|
Err(Self::bad_type(Unsupported::Float))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_char(self, _: char) -> Result<Self::Ok, Self::Error> {
|
fn serialize_char(self, _: char) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Char))
|
Err(Self::bad_type(Unsupported::Char))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_str(self, _: &str) -> Result<Self::Ok, Self::Error> {
|
fn serialize_str(self, _: &str) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::String))
|
Err(Self::bad_type(Unsupported::String))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_bytes(self, _: &[u8]) -> Result<Self::Ok, Self::Error> {
|
fn serialize_bytes(self, _: &[u8]) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::ByteArray))
|
Err(Self::bad_type(Unsupported::ByteArray))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_none(self) -> Result<Self::Ok, Self::Error> {
|
fn serialize_none(self) -> Result<Self::Ok, Self::Error> {
|
||||||
@@ -1124,11 +1124,11 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_unit(self) -> Result<Self::Ok, Self::Error> {
|
fn serialize_unit(self) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Unit))
|
Err(Self::bad_type(Unsupported::Unit))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_unit_struct(self, _: &'static str) -> Result<Self::Ok, Self::Error> {
|
fn serialize_unit_struct(self, _: &'static str) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::UnitStruct))
|
Err(Self::bad_type(Unsupported::UnitStruct))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_unit_variant(
|
fn serialize_unit_variant(
|
||||||
@@ -1137,7 +1137,7 @@ where
|
|||||||
_: u32,
|
_: u32,
|
||||||
_: &'static str,
|
_: &'static str,
|
||||||
) -> Result<Self::Ok, Self::Error> {
|
) -> Result<Self::Ok, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Enum))
|
Err(Self::bad_type(Unsupported::Enum))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_newtype_struct<T: ?Sized>(
|
fn serialize_newtype_struct<T: ?Sized>(
|
||||||
@@ -1166,11 +1166,11 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_seq(self, _: Option<usize>) -> Result<Self::SerializeSeq, Self::Error> {
|
fn serialize_seq(self, _: Option<usize>) -> Result<Self::SerializeSeq, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Sequence))
|
Err(Self::bad_type(Unsupported::Sequence))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_tuple(self, _: usize) -> Result<Self::SerializeTuple, Self::Error> {
|
fn serialize_tuple(self, _: usize) -> Result<Self::SerializeTuple, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Tuple))
|
Err(Self::bad_type(Unsupported::Tuple))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_tuple_struct(
|
fn serialize_tuple_struct(
|
||||||
@@ -1178,7 +1178,7 @@ where
|
|||||||
_: &'static str,
|
_: &'static str,
|
||||||
_: usize,
|
_: usize,
|
||||||
) -> Result<Self::SerializeTupleStruct, Self::Error> {
|
) -> Result<Self::SerializeTupleStruct, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::TupleStruct))
|
Err(Self::bad_type(Unsupported::TupleStruct))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_tuple_variant(
|
fn serialize_tuple_variant(
|
||||||
@@ -1188,7 +1188,7 @@ where
|
|||||||
_: &'static str,
|
_: &'static str,
|
||||||
_: usize,
|
_: usize,
|
||||||
) -> Result<Self::SerializeTupleVariant, Self::Error> {
|
) -> Result<Self::SerializeTupleVariant, Self::Error> {
|
||||||
Err(self.bad_type(Unsupported::Enum))
|
Err(Self::bad_type(Unsupported::Enum))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn serialize_map(self, _: Option<usize>) -> Result<Self::SerializeMap, Self::Error> {
|
fn serialize_map(self, _: Option<usize>) -> Result<Self::SerializeMap, Self::Error> {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "serde_derive"
|
name = "serde_derive"
|
||||||
version = "1.0.101" # remember to update html_root_url
|
version = "1.0.103" # remember to update html_root_url
|
||||||
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
description = "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]"
|
description = "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]"
|
||||||
|
|||||||
@@ -1937,7 +1937,7 @@ fn respan_token_stream(stream: TokenStream, span: Span) -> TokenStream {
|
|||||||
|
|
||||||
fn respan_token_tree(mut token: TokenTree, span: Span) -> TokenTree {
|
fn respan_token_tree(mut token: TokenTree, span: Span) -> TokenTree {
|
||||||
if let TokenTree::Group(g) = &mut token {
|
if let TokenTree::Group(g) = &mut token {
|
||||||
*g = Group::new(g.delimiter(), respan_token_stream(g.stream().clone(), span));
|
*g = Group::new(g.delimiter(), respan_token_stream(g.stream(), span));
|
||||||
}
|
}
|
||||||
token.set_span(span);
|
token.set_span(span);
|
||||||
token
|
token
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
//!
|
//!
|
||||||
//! [https://serde.rs/derive.html]: https://serde.rs/derive.html
|
//! [https://serde.rs/derive.html]: https://serde.rs/derive.html
|
||||||
|
|
||||||
#![doc(html_root_url = "https://docs.rs/serde_derive/1.0.101")]
|
#![doc(html_root_url = "https://docs.rs/serde_derive/1.0.103")]
|
||||||
#![allow(unknown_lints, bare_trait_objects)]
|
#![allow(unknown_lints, bare_trait_objects)]
|
||||||
#![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
|
#![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
|
||||||
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
||||||
@@ -43,6 +43,7 @@
|
|||||||
items_after_statements,
|
items_after_statements,
|
||||||
match_same_arms,
|
match_same_arms,
|
||||||
module_name_repetitions,
|
module_name_repetitions,
|
||||||
|
must_use_candidate,
|
||||||
similar_names,
|
similar_names,
|
||||||
single_match_else,
|
single_match_else,
|
||||||
too_many_lines,
|
too_many_lines,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "serde_test"
|
name = "serde_test"
|
||||||
version = "1.0.101" # remember to update html_root_url
|
version = "1.0.103" # remember to update html_root_url
|
||||||
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
description = "Token De/Serializer for testing De/Serialize implementations"
|
description = "Token De/Serializer for testing De/Serialize implementations"
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ use std::fmt::Debug;
|
|||||||
/// # use serde::{Serialize, Deserialize};
|
/// # use serde::{Serialize, Deserialize};
|
||||||
/// # use serde_test::{assert_tokens, Token};
|
/// # use serde_test::{assert_tokens, Token};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() {
|
|
||||||
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||||
/// struct S {
|
/// struct S {
|
||||||
/// a: u8,
|
/// a: u8,
|
||||||
@@ -28,7 +27,6 @@ use std::fmt::Debug;
|
|||||||
/// Token::U8(0),
|
/// Token::U8(0),
|
||||||
/// Token::StructEnd,
|
/// Token::StructEnd,
|
||||||
/// ]);
|
/// ]);
|
||||||
/// # }
|
|
||||||
/// ```
|
/// ```
|
||||||
pub fn assert_tokens<'de, T>(value: &T, tokens: &'de [Token])
|
pub fn assert_tokens<'de, T>(value: &T, tokens: &'de [Token])
|
||||||
where
|
where
|
||||||
@@ -44,7 +42,6 @@ where
|
|||||||
/// # use serde::{Serialize, Deserialize};
|
/// # use serde::{Serialize, Deserialize};
|
||||||
/// # use serde_test::{assert_ser_tokens, Token};
|
/// # use serde_test::{assert_ser_tokens, Token};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() {
|
|
||||||
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||||
/// struct S {
|
/// struct S {
|
||||||
/// a: u8,
|
/// a: u8,
|
||||||
@@ -60,7 +57,6 @@ where
|
|||||||
/// Token::U8(0),
|
/// Token::U8(0),
|
||||||
/// Token::StructEnd,
|
/// Token::StructEnd,
|
||||||
/// ]);
|
/// ]);
|
||||||
/// # }
|
|
||||||
/// ```
|
/// ```
|
||||||
pub fn assert_ser_tokens<T>(value: &T, tokens: &[Token])
|
pub fn assert_ser_tokens<T>(value: &T, tokens: &[Token])
|
||||||
where
|
where
|
||||||
@@ -135,7 +131,6 @@ where
|
|||||||
/// # use serde::{Serialize, Deserialize};
|
/// # use serde::{Serialize, Deserialize};
|
||||||
/// # use serde_test::{assert_de_tokens, Token};
|
/// # use serde_test::{assert_de_tokens, Token};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() {
|
|
||||||
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||||
/// struct S {
|
/// struct S {
|
||||||
/// a: u8,
|
/// a: u8,
|
||||||
@@ -151,7 +146,6 @@ where
|
|||||||
/// Token::U8(0),
|
/// Token::U8(0),
|
||||||
/// Token::StructEnd,
|
/// Token::StructEnd,
|
||||||
/// ]);
|
/// ]);
|
||||||
/// # }
|
|
||||||
/// ```
|
/// ```
|
||||||
pub fn assert_de_tokens<'de, T>(value: &T, tokens: &'de [Token])
|
pub fn assert_de_tokens<'de, T>(value: &T, tokens: &'de [Token])
|
||||||
where
|
where
|
||||||
@@ -190,7 +184,6 @@ where
|
|||||||
/// # use serde::{Serialize, Deserialize};
|
/// # use serde::{Serialize, Deserialize};
|
||||||
/// # use serde_test::{assert_de_tokens_error, Token};
|
/// # use serde_test::{assert_de_tokens_error, Token};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() {
|
|
||||||
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
/// #[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||||
/// #[serde(deny_unknown_fields)]
|
/// #[serde(deny_unknown_fields)]
|
||||||
/// struct S {
|
/// struct S {
|
||||||
@@ -205,7 +198,6 @@ where
|
|||||||
/// ],
|
/// ],
|
||||||
/// "unknown field `x`, expected `a` or `b`",
|
/// "unknown field `x`, expected `a` or `b`",
|
||||||
/// );
|
/// );
|
||||||
/// # }
|
|
||||||
/// ```
|
/// ```
|
||||||
pub fn assert_de_tokens_error<'de, T>(tokens: &'de [Token], error: &str)
|
pub fn assert_de_tokens_error<'de, T>(tokens: &'de [Token], error: &str)
|
||||||
where
|
where
|
||||||
|
|||||||
@@ -144,11 +144,11 @@
|
|||||||
//! # }
|
//! # }
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
#![doc(html_root_url = "https://docs.rs/serde_test/1.0.101")]
|
#![doc(html_root_url = "https://docs.rs/serde_test/1.0.103")]
|
||||||
#![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
|
#![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
|
||||||
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
||||||
// Ignored clippy lints
|
// Ignored clippy lints
|
||||||
#![cfg_attr(feature = "cargo-clippy", allow(float_cmp))]
|
#![cfg_attr(feature = "cargo-clippy", allow(float_cmp, needless_doctest_main))]
|
||||||
// Ignored clippy_pedantic lints
|
// Ignored clippy_pedantic lints
|
||||||
#![cfg_attr(
|
#![cfg_attr(
|
||||||
feature = "cargo-clippy",
|
feature = "cargo-clippy",
|
||||||
@@ -156,6 +156,7 @@
|
|||||||
empty_line_after_outer_attr,
|
empty_line_after_outer_attr,
|
||||||
missing_docs_in_private_items,
|
missing_docs_in_private_items,
|
||||||
module_name_repetitions,
|
module_name_repetitions,
|
||||||
|
must_use_candidate,
|
||||||
redundant_field_names,
|
redundant_field_names,
|
||||||
use_debug,
|
use_debug,
|
||||||
use_self
|
use_self
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ serde = { path = "../serde" }
|
|||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
fnv = "1.0"
|
fnv = "1.0"
|
||||||
rustc-serialize = "0.3.16"
|
|
||||||
rustversion = "0.1"
|
rustversion = "0.1"
|
||||||
serde = { path = "../serde", features = ["rc", "derive"] }
|
serde = { path = "../serde", features = ["rc", "derive"] }
|
||||||
serde_derive = { path = "../serde_derive", features = ["deserialize_in_place"] }
|
serde_derive = { path = "../serde_derive", features = ["deserialize_in_place"] }
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#![allow(clippy::decimal_literal_representation, clippy::unreadable_literal)]
|
#![allow(clippy::decimal_literal_representation, clippy::unreadable_literal)]
|
||||||
#![cfg_attr(feature = "unstable", feature(never_type))]
|
|
||||||
|
|
||||||
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
@@ -889,11 +888,37 @@ declare_tests! {
|
|||||||
Path::new("/usr/local/lib") => &[
|
Path::new("/usr/local/lib") => &[
|
||||||
Token::BorrowedStr("/usr/local/lib"),
|
Token::BorrowedStr("/usr/local/lib"),
|
||||||
],
|
],
|
||||||
|
Path::new("/usr/local/lib") => &[
|
||||||
|
Token::BorrowedBytes(b"/usr/local/lib"),
|
||||||
|
],
|
||||||
}
|
}
|
||||||
test_path_buf {
|
test_path_buf {
|
||||||
|
PathBuf::from("/usr/local/lib") => &[
|
||||||
|
Token::Str("/usr/local/lib"),
|
||||||
|
],
|
||||||
PathBuf::from("/usr/local/lib") => &[
|
PathBuf::from("/usr/local/lib") => &[
|
||||||
Token::String("/usr/local/lib"),
|
Token::String("/usr/local/lib"),
|
||||||
],
|
],
|
||||||
|
PathBuf::from("/usr/local/lib") => &[
|
||||||
|
Token::Bytes(b"/usr/local/lib"),
|
||||||
|
],
|
||||||
|
PathBuf::from("/usr/local/lib") => &[
|
||||||
|
Token::ByteBuf(b"/usr/local/lib"),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
test_boxed_path {
|
||||||
|
PathBuf::from("/usr/local/lib").into_boxed_path() => &[
|
||||||
|
Token::Str("/usr/local/lib"),
|
||||||
|
],
|
||||||
|
PathBuf::from("/usr/local/lib").into_boxed_path() => &[
|
||||||
|
Token::String("/usr/local/lib"),
|
||||||
|
],
|
||||||
|
PathBuf::from("/usr/local/lib").into_boxed_path() => &[
|
||||||
|
Token::Bytes(b"/usr/local/lib"),
|
||||||
|
],
|
||||||
|
PathBuf::from("/usr/local/lib").into_boxed_path() => &[
|
||||||
|
Token::ByteBuf(b"/usr/local/lib"),
|
||||||
|
],
|
||||||
}
|
}
|
||||||
test_cstring {
|
test_cstring {
|
||||||
CString::new("abc").unwrap() => &[
|
CString::new("abc").unwrap() => &[
|
||||||
|
|||||||
@@ -637,7 +637,10 @@ fn test_untagged_enum() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Serializes to unit, deserializes from either depending on format's
|
||||||
|
// preference.
|
||||||
assert_tokens(&Untagged::C, &[Token::Unit]);
|
assert_tokens(&Untagged::C, &[Token::Unit]);
|
||||||
|
assert_de_tokens(&Untagged::C, &[Token::None]);
|
||||||
|
|
||||||
assert_tokens(&Untagged::D(4), &[Token::U8(4)]);
|
assert_tokens(&Untagged::D(4), &[Token::U8(4)]);
|
||||||
assert_tokens(&Untagged::E("e".to_owned()), &[Token::Str("e")]);
|
assert_tokens(&Untagged::E("e".to_owned()), &[Token::Str("e")]);
|
||||||
@@ -652,11 +655,6 @@ fn test_untagged_enum() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_de_tokens_error::<Untagged>(
|
|
||||||
&[Token::None],
|
|
||||||
"data did not match any variant of untagged enum Untagged",
|
|
||||||
);
|
|
||||||
|
|
||||||
assert_de_tokens_error::<Untagged>(
|
assert_de_tokens_error::<Untagged>(
|
||||||
&[Token::Tuple { len: 1 }, Token::U8(1), Token::TupleEnd],
|
&[Token::Tuple { len: 1 }, Token::U8(1), Token::TupleEnd],
|
||||||
"data did not match any variant of untagged enum Untagged",
|
"data did not match any variant of untagged enum Untagged",
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#![allow(clippy::unreadable_literal)]
|
#![allow(clippy::unreadable_literal)]
|
||||||
#![cfg_attr(feature = "unstable", feature(never_type))]
|
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ error[E0609]: no field `b` on type `&remote::S`
|
|||||||
--> $DIR/unknown_field.rs:12:5
|
--> $DIR/unknown_field.rs:12:5
|
||||||
|
|
|
|
||||||
12 | b: u8,
|
12 | b: u8,
|
||||||
| ^
|
| ^ help: a field with a similar name exists: `a`
|
||||||
|
|
||||||
error[E0560]: struct `remote::S` has no field named `b`
|
error[E0560]: struct `remote::S` has no field named `b`
|
||||||
--> $DIR/unknown_field.rs:12:5
|
--> $DIR/unknown_field.rs:12:5
|
||||||
|
|||||||
@@ -6,5 +6,3 @@ error[E0308]: mismatched types
|
|||||||
|
|
|
|
||||||
= note: expected type `&u8`
|
= note: expected type `&u8`
|
||||||
found type `&u16`
|
found type `&u16`
|
||||||
|
|
||||||
For more information about this error, try `rustc --explain E0308`.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user