-
Notifications
You must be signed in to change notification settings - Fork 19
Serde
Finn Bear edited this page Oct 20, 2024
·
5 revisions
A serde
integration is gated behind the "serde"
feature flag. It is slower, produces
slightly larger output, and (by extension) is not compatible with the native
bitcode::{Encode, Decode}
.
bitcode
isn't self-describing, so it doesn't support serde
features that rely on self-description:
-
enum
's with#[serde(untagged)]
. - Fields with
#[serde(skip_serializing_if = ...)]
,#[serde(default)]
, etc. - Types like
serde_json::Value
, which internally serialize different types (numbers, arrays, etc.) without a normal enum discriminant.
- The
serde
version omits theflowinfo
andscope_id
fields ofstd::net::SocketAddrV6
, but thederive
version keeps them. - The
serde
version supports recursive types, but thederive
version (as of version0.6
) does not.