Skip to content

Releases: serde-rs/serde

v0.7.10

11 Jun 20:15
v0.7.10
8a09f05
Compare
Choose a tag to compare
  • Adds Serialize and Deserialize support for HashMap and HashSet that use a non-default Hasher (#369)

v0.7.9

10 Jun 03:29
v0.7.9
bb059b9
Compare
Choose a tag to compare
  • Adds serde_codegen::expand as an alternative to serde_codegen::register when using the with-syntex feature. This hides the dependency on Syntex and allows Syntex users to avoid being broken by Serde bumping its Syntex dependency. The serde_codegen::register function is deprecated and will be removed in 0.8.0. #362

v0.7.8

06 Jun 17:25
v0.7.8
58fa302
Compare
Choose a tag to compare
  • Adds a bound attribute for specifying handwritten where clause for Serialize and Deserialize impls in tricky situations (#352)
    • #[serde(bound="D: Serialize + Deserialize")]
    • #[serde(bound(serialize="D: Serialize", deserialize="D: Deserialize"))]
  • No longer generates bounds based on fields that contain direct recursion as this typically leads to infinite recursion in rustc (#336)
  • Fixes rename attributes canceling one another if specified separately for ser and de (#353)

v0.7.7

05 Jun 01:43
v0.7.7
Compare
Choose a tag to compare
  • Reverts an unintentional breaking change in 0.7.6 (#349)

v0.7.6

05 Jun 01:42
v0.7.6
Compare
Choose a tag to compare
  • Enables use in no_std environments, controlled by the following feature flags (#316)
    • alloc (implies nightly)
    • collections (implies alloc and nightly)
    • std (default)
  • Fixes a number of bugs around (de)serialize_with in newtype structs, tuple structs, newtype variants, and tuple variants (#335)
  • Serializes double-references to generic types correctly (#337)
  • Fixes some compiler warnings that snuck into 0.7.5 (#322)

v0.7.5

05 Jun 01:51
v0.7.5
Compare
Choose a tag to compare
  • Fixes a codegen regression from 0.7.4 that generates invalid code for some generic structs (#308)
  • Visiting the same struct field or map key twice is now an error (#293)
  • Fields with deserialize_with are no longer required to implement the Deserialize trait (#311)
  • Fixes a codegen bug related to deserialize_with in a struct containing more than one field (#308)
  • Fixes a codegen bug related to deserialize_with in a struct with a type parameter called D (#315)

v0.7.4

05 Jun 01:54
v0.7.4
Compare
Choose a tag to compare
  • Adds skip_deserializing attribute (#265)
  • Adds Deserialize impl for Box<[T]> (#290)
  • Fields with skip_serializing are no longer required to implement the Serialize trait (#260, #285)
  • A bound of std::default::Default is inferred for fields that use the default attribute (#285)
  • Supports codegen for structs that use defaulted generic type params (#295)
  • Supports extern crate serde not in the top-level module (#298)

v0.7.2

05 Jun 01:55
v0.7.2
Compare
Choose a tag to compare
  • Fixes a codegen bug related to deserialize_with in a module containing a type alias for Result (#279)
  • Fixes an unused_variables warning in codegen for an empty enum (#273)

v0.7.1

05 Jun 01:55
v0.7.1
Compare
Choose a tag to compare

(this release is a Syntex bump only)

v0.7.0

05 Jun 01:55
v0.7.0
Compare
Choose a tag to compare

This release contains significant breaking changes compared to v0.6.x.

Deserializer trait

  • Renames Deserializer::visit_* to Deserializer::deserialize_* (#151)
  • Adds deserialize_ignored_any method to Deserializer trait (#225)
  • Overhauls the de::Error trait (#160, #166, #169, #249, #254)
  • Adds hooks for fixed-sized arrays (#244)

Attributes

  • Adds deny_unknown_fields attribute (#44 and #60)
  • Adds default="..." attribute (#90, #216)
  • Removes support for format-specific renames added in v0.4.0 (#211)
  • Supports serialize- and deserialize-specific renames (#233)

Impls

  • Adds impls for PhantomData (#248)
  • Adds impls for std::net::Ip{,v4,v6}Addr (#181)
  • Removes dependency on num crate added in v0.6.6 (#243)
  • Fixes panic during serialization of Path (#57)