diff --git a/crates/storage/codecs/Cargo.toml b/crates/storage/codecs/Cargo.toml index 18a028691..05d9e7403 100644 --- a/crates/storage/codecs/Cargo.toml +++ b/crates/storage/codecs/Cargo.toml @@ -24,7 +24,11 @@ proptest.workspace = true proptest-derive.workspace = true [features] -default = ["compact"] +default = ["compact", "std"] +std = [ + "alloy-primitives/std", + "bytes/std", +] compact = ["codecs-derive/compact"] scale = ["codecs-derive/scale"] postcard = ["codecs-derive/postcard"] diff --git a/crates/storage/codecs/src/lib.rs b/crates/storage/codecs/src/lib.rs index 93d5e4ec2..d3cdbaa01 100644 --- a/crates/storage/codecs/src/lib.rs +++ b/crates/storage/codecs/src/lib.rs @@ -15,6 +15,10 @@ #![deny(unused_must_use, rust_2018_idioms)] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] #![allow(clippy::non_canonical_clone_impl)] +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; +use alloc::vec::Vec; pub use codecs_derive::*; @@ -78,7 +82,7 @@ macro_rules! impl_uint_compact { { let leading = self.leading_zeros() as usize / 8; buf.put_slice(&self.to_be_bytes()[leading..]); - std::mem::size_of::<$name>() - leading + core::mem::size_of::<$name>() - leading } #[inline] @@ -87,8 +91,8 @@ macro_rules! impl_uint_compact { return (0, buf); } - let mut arr = [0; std::mem::size_of::<$name>()]; - arr[std::mem::size_of::<$name>() - len..].copy_from_slice(&buf[..len]); + let mut arr = [0; core::mem::size_of::<$name>()]; + arr[core::mem::size_of::<$name>() - len..].copy_from_slice(&buf[..len]); buf.advance(len); ($name::from_be_bytes(arr), buf) } @@ -317,7 +321,7 @@ macro_rules! impl_compact_for_bytes { #[inline] fn from_compact(buf: &[u8], len: usize) -> (Self, &[u8]) { - let (v, buf) = <[u8; std::mem::size_of::<$name>()]>::from_compact(buf, len); + let (v, buf) = <[u8; core::mem::size_of::<$name>()]>::from_compact(buf, len); (Self::from(v), buf) } }