fix: force no_std for wasm32v1-none target regardless of std feature

cargo check --target wasm32v1-none uses workspace feature unification which
may enable the std feature even for no_std targets. wasm32v1-none (bare-metal
wasm, target_os=none) has no libstd available, so we must force no_std and
the core-as-std alias for this specific target combination.
This commit is contained in:
2026-04-25 21:56:17 +03:00
parent c5461f2a87
commit 0c417574a3
+9 -2
View File
@@ -20,12 +20,19 @@
//! This version of arrayvec requires Rust 1.51 or later. //! This version of arrayvec requires Rust 1.51 or later.
//! //!
#![doc(html_root_url="https://docs.rs/arrayvec/0.7/")] #![doc(html_root_url="https://docs.rs/arrayvec/0.7/")]
#![cfg_attr(not(feature="std"), no_std)] // no_std when std feature is disabled, OR when compiling for wasm32v1-none
// (a bare-metal wasm target with no libstd, regardless of feature flags set
// by the host workspace — cargo check --target wasm32v1-none unifies features
// from the whole workspace which may include std=true).
#![cfg_attr(
any(not(feature = "std"), all(target_arch = "wasm32", target_os = "none")),
no_std
)]
#[cfg(feature="serde")] #[cfg(feature="serde")]
extern crate serde; extern crate serde;
#[cfg(not(feature="std"))] #[cfg(any(not(feature = "std"), all(target_arch = "wasm32", target_os = "none")))]
extern crate core as std; extern crate core as std;
pub(crate) type LenUint = u32; pub(crate) type LenUint = u32;