Serde (original) (raw)
Introduction
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 nativebitcode::{Encode, Decode}.
Unsupported features
bitcode isn't self-describing, so it doesn't support serde features that rely on self-description:
enum's with#[serde(untagged)]or#[serde(tag = ...)].- 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 of bitcode only supports up to 256 variants per enum.
Compatibility notes
- The
serdeversion omits theflowinfoandscope_idfields ofstd:🥅:SocketAddrV6, but thederiveversion keeps them. - The
serdeversion supports recursive types, but thederiveversion (as of version0.6) does not.