mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 20:38:02 +00:00
679af0fb4b
When building for wasm32v1-none with Cargo, the 'std' feature gets unified across the dependency graph, meaning serde_core sees feature="std" even on a no_std target. This caused compilation failures because the crate tried to use std:: imports. This commit fixes the issue by checking target_os = "none" in addition to the std feature flag: - lib.rs: Force no_std when target_os = "none" - crate_root.rs: Use core/alloc instead of std on target_os = "none" - All std-only cfg blocks now include not(target_os = "none") - Add explicit prelude imports for wasm32v1-none compatibility
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.
Crates that depend on serde_core instead of serde are able to compile in
parallel with serde_derive even when serde's "derive" feature is turned on,
as shown in the following build timings.
When serde_json depends on serde |
|---|
When serde_json depends on serde_core |
|---|