mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-23 10:38:02 +00:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4cddcbe194 | |||
| 54b6798ef6 | |||
| 229a9d90ba | |||
| 3bcd568c86 | |||
| dc56077aac | |||
| 46bd36e17c | |||
| 5dee9118c7 | |||
| a916aa9420 | |||
| d9c63d0784 | |||
| 41dcb969e8 | |||
| 6dbaea34ba | |||
| ce17301b8b | |||
| b0e78c6be4 | |||
| 898f65fa46 | |||
| 84e384196d | |||
| d827b101d9 | |||
| c45ab6b304 | |||
| cc9d85b293 | |||
| 02493d83be | |||
| a1280c672a | |||
| a740f76772 |
@@ -79,12 +79,13 @@ fn main() {
|
||||
|
||||
## Getting help
|
||||
|
||||
Serde developers live in the #serde channel on
|
||||
[`irc.mozilla.org`](https://wiki.mozilla.org/IRC). The #rust channel is also a
|
||||
good resource with generally faster response time but less specific knowledge
|
||||
about Serde. If IRC is not your thing or you don't get a good response, we are
|
||||
happy to respond to [GitHub issues](https://github.com/serde-rs/serde/issues/new)
|
||||
as well.
|
||||
Serde developers live in the #serde channel on [`irc.mozilla.org`][irc]. The
|
||||
\#rust channel is also a good resource with generally faster response time but
|
||||
less specific knowledge about Serde. If IRC is not your thing or you don't get a
|
||||
good response, we are happy to respond to [GitHub issues][issues] as well.
|
||||
|
||||
[irc]: https://wiki.mozilla.org/IRC
|
||||
[issues]: https://github.com/serde-rs/serde/issues/new/choose
|
||||
|
||||
## License
|
||||
|
||||
|
||||
+7
-6
@@ -47,9 +47,10 @@ fn main() {
|
||||
|
||||
## Getting help
|
||||
|
||||
Serde developers live in the #serde channel on
|
||||
[`irc.mozilla.org`](https://wiki.mozilla.org/IRC). The #rust channel is also a
|
||||
good resource with generally faster response time but less specific knowledge
|
||||
about Serde. If IRC is not your thing or you don't get a good response, we are
|
||||
happy to respond to [GitHub issues](https://github.com/serde-rs/serde/issues/new)
|
||||
as well.
|
||||
Serde developers live in the #serde channel on [`irc.mozilla.org`][irc]. The
|
||||
\#rust channel is also a good resource with generally faster response time but
|
||||
less specific knowledge about Serde. If IRC is not your thing or you don't get a
|
||||
good response, we are happy to respond to [GitHub issues][issues] as well.
|
||||
|
||||
[irc]: https://wiki.mozilla.org/IRC
|
||||
[issues]: https://github.com/serde-rs/serde/issues/new/choose
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "serde"
|
||||
version = "1.0.66" # remember to update html_root_url
|
||||
version = "1.0.70" # remember to update html_root_url
|
||||
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
||||
license = "MIT/Apache-2.0"
|
||||
description = "A generic serialization/deserialization framework"
|
||||
|
||||
+1
-5
@@ -593,11 +593,7 @@ pub trait Deserialize<'de>: Sized {
|
||||
///
|
||||
/// [Understanding deserializer lifetimes]: https://serde.rs/lifetimes.html
|
||||
pub trait DeserializeOwned: for<'de> Deserialize<'de> {}
|
||||
impl<T> DeserializeOwned for T
|
||||
where
|
||||
T: for<'de> Deserialize<'de>,
|
||||
{
|
||||
}
|
||||
impl<T> DeserializeOwned for T where T: for<'de> Deserialize<'de> {}
|
||||
|
||||
/// `DeserializeSeed` is the stateful form of the `Deserialize` trait. If you
|
||||
/// ever find yourself looking for a way to pass data into a `Deserialize` impl,
|
||||
|
||||
+7
-3
@@ -82,7 +82,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Serde types in rustdoc of other crates get linked to here.
|
||||
#![doc(html_root_url = "https://docs.rs/serde/1.0.66")]
|
||||
#![doc(html_root_url = "https://docs.rs/serde/1.0.70")]
|
||||
// Support using Serde without the standard library!
|
||||
#![cfg_attr(not(feature = "std"), no_std)]
|
||||
// Unstable functionality only if the user asks for it. For tracking and
|
||||
@@ -118,6 +118,7 @@
|
||||
stutter,
|
||||
use_self,
|
||||
// not practical
|
||||
indexing_slicing,
|
||||
many_single_char_names,
|
||||
missing_docs_in_private_items,
|
||||
similar_names,
|
||||
@@ -126,7 +127,10 @@
|
||||
use_debug,
|
||||
))]
|
||||
// Blacklisted Rust lints.
|
||||
#![deny(missing_docs, unused_imports)]
|
||||
//
|
||||
// Compiler bug involving unused_imports:
|
||||
// https://github.com/rust-lang/rust/issues/51661
|
||||
#![deny(missing_docs, /*unused_imports*/)]
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -189,7 +193,7 @@ mod lib {
|
||||
pub use std::sync::{Arc, Weak as ArcWeak};
|
||||
|
||||
#[cfg(all(feature = "alloc", not(feature = "std")))]
|
||||
pub use alloc::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
|
||||
pub use alloc::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
|
||||
#[cfg(feature = "std")]
|
||||
pub use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
|
||||
|
||||
|
||||
+2
-2
@@ -128,7 +128,7 @@
|
||||
/// [`Deserializer`]: trait.Deserializer.html
|
||||
/// [`Visitor`]: de/trait.Visitor.html
|
||||
/// [`Deserializer::deserialize_any`]: trait.Deserializer.html#tymethod.deserialize_any
|
||||
#[macro_export]
|
||||
#[macro_export(local_inner_macros)]
|
||||
macro_rules! forward_to_deserialize_any {
|
||||
(<$visitor:ident: Visitor<$lifetime:tt>> $($func:ident)*) => {
|
||||
$(forward_to_deserialize_any_helper!{$func<$lifetime, $visitor>})*
|
||||
@@ -157,7 +157,7 @@ macro_rules! forward_to_deserialize_any_method {
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
#[macro_export]
|
||||
#[macro_export(local_inner_macros)]
|
||||
macro_rules! forward_to_deserialize_any_helper {
|
||||
(bool<$l:tt, $v:ident>) => {
|
||||
forward_to_deserialize_any_method!{deserialize_bool<$l, $v>()}
|
||||
|
||||
@@ -32,7 +32,7 @@ macro_rules! __private_deserialize {
|
||||
|
||||
/// Used only by Serde doc tests. Not public API.
|
||||
#[doc(hidden)]
|
||||
#[macro_export]
|
||||
#[macro_export(local_inner_macros)]
|
||||
macro_rules! __serialize_unimplemented {
|
||||
($($func:ident)*) => {
|
||||
$(
|
||||
@@ -52,7 +52,7 @@ macro_rules! __serialize_unimplemented_method {
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
#[macro_export]
|
||||
#[macro_export(local_inner_macros)]
|
||||
macro_rules! __serialize_unimplemented_helper {
|
||||
(bool) => {
|
||||
__serialize_unimplemented_method!(serialize_bool(bool) -> Ok);
|
||||
|
||||
@@ -69,6 +69,15 @@ impl Serialize for String {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Serialize for fmt::Arguments<'a> {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
serializer.collect_str(self)
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "serde_derive"
|
||||
version = "1.0.66" # remember to update html_root_url
|
||||
version = "1.0.70" # remember to update html_root_url
|
||||
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
||||
license = "MIT/Apache-2.0"
|
||||
description = "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]"
|
||||
|
||||
@@ -200,7 +200,7 @@ pub fn with_bound(
|
||||
lifetimes: None,
|
||||
// the type parameter that is being bounded e.g. T
|
||||
bounded_ty: syn::Type::Path(bounded_ty),
|
||||
colon_token: Default::default(),
|
||||
colon_token: <Token![:]>::default(),
|
||||
// the bound e.g. Serialize
|
||||
bounds: vec![syn::TypeParamBound::Trait(syn::TraitBound {
|
||||
paren_token: None,
|
||||
@@ -233,7 +233,7 @@ pub fn with_self_bound(
|
||||
lifetimes: None,
|
||||
// the type that is being bounded e.g. MyStruct<'a, T>
|
||||
bounded_ty: type_of_item(cont),
|
||||
colon_token: Default::default(),
|
||||
colon_token: <Token![:]>::default(),
|
||||
// the bound e.g. Default
|
||||
bounds: vec![syn::TypeParamBound::Trait(syn::TraitBound {
|
||||
paren_token: None,
|
||||
@@ -289,7 +289,7 @@ fn type_of_item(cont: &Container) -> syn::Type {
|
||||
arguments: syn::PathArguments::AngleBracketed(
|
||||
syn::AngleBracketedGenericArguments {
|
||||
colon2_token: None,
|
||||
lt_token: Default::default(),
|
||||
lt_token: <Token![<]>::default(),
|
||||
args: cont
|
||||
.generics
|
||||
.params
|
||||
@@ -309,7 +309,7 @@ fn type_of_item(cont: &Container) -> syn::Type {
|
||||
}
|
||||
})
|
||||
.collect(),
|
||||
gt_token: Default::default(),
|
||||
gt_token: <Token![>]>::default(),
|
||||
},
|
||||
),
|
||||
}].into_iter()
|
||||
|
||||
@@ -73,6 +73,9 @@ pub fn expand_derive_deserialize(input: &syn::DeriveInput) -> Result<TokenStream
|
||||
let generated = quote! {
|
||||
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
|
||||
const #dummy_const: () = {
|
||||
#[allow(unknown_lints)]
|
||||
#[cfg_attr(feature = "cargo-clippy", allow(useless_attribute))]
|
||||
#[allow(rust_2018_idioms)]
|
||||
extern crate serde as _serde;
|
||||
#try_replacement
|
||||
#impl_block
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//!
|
||||
//! [https://serde.rs/derive.html]: https://serde.rs/derive.html
|
||||
|
||||
#![doc(html_root_url = "https://docs.rs/serde_derive/1.0.66")]
|
||||
#![doc(html_root_url = "https://docs.rs/serde_derive/1.0.70")]
|
||||
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
||||
// Whitelisted clippy lints
|
||||
#![cfg_attr(
|
||||
@@ -37,7 +37,7 @@
|
||||
feature = "cargo-clippy",
|
||||
allow(
|
||||
items_after_statements, doc_markdown, stutter, similar_names, use_self, single_match_else,
|
||||
enum_glob_use, match_same_arms, filter_map, cast_possible_truncation
|
||||
enum_glob_use, match_same_arms, filter_map, cast_possible_truncation, indexing_slicing,
|
||||
)
|
||||
)]
|
||||
// The `quote!` macro requires deep recursion.
|
||||
|
||||
@@ -61,6 +61,9 @@ pub fn expand_derive_serialize(input: &syn::DeriveInput) -> Result<TokenStream,
|
||||
let generated = quote! {
|
||||
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
|
||||
const #dummy_const: () = {
|
||||
#[allow(unknown_lints)]
|
||||
#[cfg_attr(feature = "cargo-clippy", allow(useless_attribute))]
|
||||
#[allow(rust_2018_idioms)]
|
||||
extern crate serde as _serde;
|
||||
#try_replacement
|
||||
#impl_block
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "serde_test"
|
||||
version = "1.0.66" # remember to update html_root_url
|
||||
version = "1.0.70" # remember to update html_root_url
|
||||
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
|
||||
license = "MIT/Apache-2.0"
|
||||
description = "Token De/Serializer for testing De/Serialize implementations"
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
//! # }
|
||||
//! ```
|
||||
|
||||
#![doc(html_root_url = "https://docs.rs/serde_test/1.0.66")]
|
||||
#![doc(html_root_url = "https://docs.rs/serde_test/1.0.70")]
|
||||
#![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
|
||||
// Whitelisted clippy lints
|
||||
#![cfg_attr(feature = "cargo-clippy", allow(float_cmp))]
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(lang_items, start)]
|
||||
#![feature(lang_items, start, panic_implementation)]
|
||||
#![no_std]
|
||||
|
||||
extern crate libc;
|
||||
@@ -20,13 +20,8 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rust_eh_personality() {}
|
||||
|
||||
#[lang = "panic_fmt"]
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rust_begin_panic(
|
||||
_msg: core::fmt::Arguments,
|
||||
_file: &'static str,
|
||||
_line: u32,
|
||||
) -> ! {
|
||||
#[panic_implementation]
|
||||
fn panic(_info: &core::panic::PanicInfo) -> ! {
|
||||
unsafe {
|
||||
libc::abort();
|
||||
}
|
||||
|
||||
@@ -462,6 +462,11 @@ declare_tests! {
|
||||
Token::SeqEnd,
|
||||
],
|
||||
}
|
||||
test_fmt_arguments {
|
||||
format_args!("{}{}", 1, 'a') => &[
|
||||
Token::Str("1a"),
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
declare_tests! {
|
||||
|
||||
Reference in New Issue
Block a user