Skip to main content

PsramSafe

Trait PsramSafe 

Source
pub unsafe auto trait PsramSafe { }
Expand description

Marker for types safe to store in PSRAM: nothing holding an inline atomic.

Atomic read-modify-write instructions misbehave against PSRAM-backed addresses on ESP32 / ESP32-S3, so the checked allocators psram_box / psram_vec only accept T: PsramSafe. Like Send / Sync this is an auto trait: a struct is PsramSafe iff every field is, so a type that embeds an Atomic* (directly or transitively — e.g. via Arc, many lock types) is rejected at compile time.

A pointer or reference to an atomic living elsewhere is fine — the atomic itself is not in PSRAM — so &T, &mut T, *const T and *mut T are always PsramSafe.

§Safety

Only implement (or negative-impl) this to reflect the atomic-in-PSRAM hazard; the checked allocators rely on it to keep atomics out of PSRAM.

Implementations on Foreign Types§

Source§

impl !PsramSafe for AtomicBool

Source§

impl !PsramSafe for AtomicI8

Source§

impl !PsramSafe for AtomicI16

Source§

impl !PsramSafe for AtomicI32

Source§

impl !PsramSafe for AtomicIsize

Source§

impl !PsramSafe for AtomicU8

Source§

impl !PsramSafe for AtomicU16

Source§

impl !PsramSafe for AtomicU32

Source§

impl !PsramSafe for AtomicUsize

Source§

impl<T> !PsramSafe for AtomicPtr<T>

Source§

impl<T: ?Sized> PsramSafe for &T

Source§

impl<T: ?Sized> PsramSafe for &mut T

Source§

impl<T: ?Sized> PsramSafe for *const T

Source§

impl<T: ?Sized> PsramSafe for *mut T

Implementors§

Auto implementors§

§

impl PsramSafe for CardPresence

§

impl PsramSafe for Aw9523bError

§

impl PsramSafe for Axp2101Error

§

impl PsramSafe for m5stack_core::driver::ds18b20::Error

§

impl PsramSafe for Ip5306Error

§

impl PsramSafe for m5stack_core::driver::onewire::Error

§

impl PsramSafe for SearchError

§

impl PsramSafe for PpsError

§

impl PsramSafe for PpsRunningMode

§

impl PsramSafe for ReadResult

§

impl PsramSafe for RadioError

§

impl PsramSafe for AuthenticationMethod

§

impl PsramSafe for IpSetup

§

impl PsramSafe for WifiError

§

impl PsramSafe for Sk6812Error

§

impl PsramSafe for ButtonAction

§

impl PsramSafe for ButtonId

§

impl PsramSafe for InputCaps

§

impl PsramSafe for HeapProfile

§

impl PsramSafe for PsramSplitError

§

impl PsramSafe for Board

§

impl PsramSafe for DisplayBus

§

impl PsramSafe for DisplayDriver

§

impl PsramSafe for Spi2Parts

§

impl PsramSafe for Aw9523bDriver

§

impl PsramSafe for Aw9523bResources

§

impl PsramSafe for Axp2101Driver

§

impl PsramSafe for Ds18b20Driver

§

impl PsramSafe for Ip5306Driver

§

impl PsramSafe for Address

§

impl PsramSafe for PcntDriver

§

impl PsramSafe for PpsDriver

§

impl PsramSafe for BleRadio

§

impl PsramSafe for AccessPointInfo

§

impl PsramSafe for Wifi

§

impl PsramSafe for WifiControl

§

impl PsramSafe for WifiRunner

§

impl PsramSafe for Rgb

§

impl PsramSafe for Sk6812Driver

§

impl PsramSafe for ButtonEvent

§

impl PsramSafe for ButtonTiming

§

impl PsramSafe for Config

§

impl PsramSafe for Console

§

impl PsramSafe for PanicCrumb

§

impl PsramSafe for SerialResources

§

impl PsramSafe for PpsReadings

§

impl PsramSafe for PpsResources

§

impl PsramSafe for PpsSetpoint

§

impl PsramSafe for RpmConfig

§

impl PsramSafe for SharedI2cBus

§

impl PsramSafe for TouchButtons

§

impl PsramSafe for TouchButtonsConfig

§

impl PsramSafe for AnyMemory

§

impl PsramSafe for ExternalMemory

§

impl PsramSafe for InternalMemory

§

impl PsramSafe for PsramSplit

§

impl<'a> PsramSafe for M5Bus<'a>

§

impl<'a> PsramSafe for Spi2Resources<'a>

§

impl<'a> PsramSafe for SystemResources<'a>

§

impl<'a> PsramSafe for OneWire<'a>

§

impl<'a> PsramSafe for StaCredentials<'a>

§

impl<'a> PsramSafe for ButtonResources<'a>

§

impl<'a> PsramSafe for Buttons<'a>

§

impl<'a> PsramSafe for OnewireResources<'a>

§

impl<'a> PsramSafe for RpmResources<'a>

§

impl<'d> PsramSafe for SerialCmdResources<'d>

§

impl<CS> PsramSafe for PreparedCard<CS>
where CS: PsramSafe,

§

impl<CS> PsramSafe for PresenceCs<CS>
where CS: PsramSafe,