mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 19:28:01 +00:00
8909fc0c60
Even for a simple data structure that would ordinarily expand to an impl that only refers to the public Serde traits without serde::__private, we still disallow a (renamed) serde_core dependency. This leaves the liberty to new usage of private helpers in such impls over time. For example, similar to the optimization of the standard library's derive(Debug) that introduced debug_struct_field1_finish to improve compile time of derived impls.
The serde_core crate contains Serde's trait definitions with no support for
#[derive()].
In crates that derive an implementation of Serialize or Deserialize, you
must depend on the serde crate, not serde_core.
In crates that handwrite implementations of Serde traits, or only use them as
trait bounds, depending on serde_core is permitted. But serde re-exports all
of these traits and can be used for this use case too. If in doubt, disregard
serde_core and always use serde.