Files
serde/serde_core
pezkuwichain 7ce49dc38b fix: add explicit prelude exports for wasm32v1-none target
wasm32v1-none target does not automatically inject prelude items like
Sized, Clone, Copy, etc. into scope. This commit:

- Uses fully qualified paths (::core, ::std) to avoid ambiguity with
  internal `mod core` shadowing
- Explicitly re-exports rust_2021 prelude items
- Adds explicit imports for essential prelude traits: Sized, Clone,
  Copy, Send, Sync, Unpin, Default, Eq, Ord, PartialEq, PartialOrd,
  Iterator traits, and Fn traits
- Adds `extern crate core;` for no_std targets in lib.rs

This fixes compilation errors like "relaxing a default bound only does
something for ?Sized" when building for wasm32v1-none target.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 12:44:12 +03:00
..
2025-09-27 09:51:07 -07:00
2025-06-06 11:57:32 +02:00
2025-06-06 11:57:32 +02:00

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