From 16d6bd7ece4c4b9b72f6bd51c9b034270b745525 Mon Sep 17 00:00:00 2001 From: Mica White Date: Sun, 13 Sep 2026 15:12:08 -0400 Subject: Support no_std --- src/rwlock/read_guard.rs | 20 ++++++++++---------- src/rwlock/rwlock.rs | 15 +++++++++------ src/rwlock/write_guard.rs | 20 ++++++++++---------- 3 files changed, 29 insertions(+), 26 deletions(-) (limited to 'src/rwlock') diff --git a/src/rwlock/read_guard.rs b/src/rwlock/read_guard.rs index f3161f5..7ca73d1 100755 --- a/src/rwlock/read_guard.rs +++ b/src/rwlock/read_guard.rs @@ -1,7 +1,7 @@ -use std::fmt::{Debug, Display}; -use std::hash::Hash; -use std::marker::PhantomData; -use std::ops::Deref; +use core::fmt::{Debug, Display}; +use core::hash::Hash; +use core::marker::PhantomData; +use core::ops::Deref; use lock_api::RawRwLock; @@ -16,7 +16,7 @@ use super::{RwLock, RwLockReadGuard, RwLockReadRef}; #[mutants::skip] // hashing involves PRNG and is hard to test #[cfg(not(tarpaulin_include))] impl Hash for RwLockReadRef<'_, T, R> { - fn hash(&self, state: &mut H) { + fn hash(&self, state: &mut H) { self.deref().hash(state) } } @@ -24,13 +24,13 @@ impl Hash for RwLockReadRef<'_, T, R> { #[mutants::skip] #[cfg(not(tarpaulin_include))] impl Debug for RwLockReadRef<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Debug::fmt(&**self, f) } } impl Display for RwLockReadRef<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Display::fmt(&**self, f) } } @@ -72,7 +72,7 @@ impl<'a, T: ?Sized, R: RawRwLock> RwLockReadRef<'a, T, R> { #[mutants::skip] // hashing involves PRNG and is hard to test #[cfg(not(tarpaulin_include))] impl Hash for RwLockReadGuard<'_, T, R> { - fn hash(&self, state: &mut H) { + fn hash(&self, state: &mut H) { self.deref().hash(state) } } @@ -80,13 +80,13 @@ impl Hash for RwLockReadGuard<'_, T, R> { #[mutants::skip] #[cfg(not(tarpaulin_include))] impl Debug for RwLockReadGuard<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Debug::fmt(&**self, f) } } impl Display for RwLockReadGuard<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Display::fmt(&**self, f) } } diff --git a/src/rwlock/rwlock.rs b/src/rwlock/rwlock.rs index 6adf73a..72e7742 100755 --- a/src/rwlock/rwlock.rs +++ b/src/rwlock/rwlock.rs @@ -1,8 +1,9 @@ -use std::cell::UnsafeCell; -use std::fmt::Debug; -use std::marker::PhantomData; -use std::panic::AssertUnwindSafe; +use core::cell::UnsafeCell; +use core::fmt::Debug; +use core::marker::PhantomData; +use core::panic::AssertUnwindSafe; +use alloc::vec::Vec; use lock_api::RawRwLock; use crate::handle_unwind::handle_unwind; @@ -163,7 +164,7 @@ impl RwLock { #[mutants::skip] #[cfg(not(tarpaulin_include))] impl Debug for RwLock { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { // safety: this is just a try lock, and the value is dropped // immediately after, so there's no risk of blocking ourselves // or any other threads @@ -172,7 +173,7 @@ impl Debug for RwLock { } else { struct LockedPlaceholder; impl Debug for LockedPlaceholder { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { f.write_str("") } } @@ -586,6 +587,8 @@ impl RwLock { /// Attempts to create an exclusive lock without a key. Locking this /// without exclusive access to the key is undefined behavior. #[cfg(test)] + #[allow(clippy::allow_attributes)] + #[allow(dead_code)] pub(crate) unsafe fn try_write_no_key(&self) -> Option> { unsafe { if self.raw_try_write() { diff --git a/src/rwlock/write_guard.rs b/src/rwlock/write_guard.rs index 823f7a4..5e367bd 100755 --- a/src/rwlock/write_guard.rs +++ b/src/rwlock/write_guard.rs @@ -1,7 +1,7 @@ -use std::fmt::{Debug, Display}; -use std::hash::Hash; -use std::marker::PhantomData; -use std::ops::{Deref, DerefMut}; +use core::fmt::{Debug, Display}; +use core::hash::Hash; +use core::marker::PhantomData; +use core::ops::{Deref, DerefMut}; use lock_api::RawRwLock; @@ -16,7 +16,7 @@ use super::{RwLock, RwLockWriteGuard, RwLockWriteRef}; #[mutants::skip] // hashing involves PRNG and is difficult to test #[cfg(not(tarpaulin_include))] impl Hash for RwLockWriteRef<'_, T, R> { - fn hash(&self, state: &mut H) { + fn hash(&self, state: &mut H) { self.deref().hash(state) } } @@ -24,13 +24,13 @@ impl Hash for RwLockWriteRef<'_, T, R> { #[mutants::skip] #[cfg(not(tarpaulin_include))] impl Debug for RwLockWriteRef<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Debug::fmt(&**self, f) } } impl Display for RwLockWriteRef<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Display::fmt(&**self, f) } } @@ -87,7 +87,7 @@ impl<'a, T: ?Sized + 'a, R: RawRwLock> RwLockWriteRef<'a, T, R> { #[mutants::skip] // hashing involves PRNG and is difficult to test #[cfg(not(tarpaulin_include))] impl Hash for RwLockWriteGuard<'_, T, R> { - fn hash(&self, state: &mut H) { + fn hash(&self, state: &mut H) { self.deref().hash(state) } } @@ -95,13 +95,13 @@ impl Hash for RwLockWriteGuard<'_, T, R> { #[mutants::skip] #[cfg(not(tarpaulin_include))] impl Debug for RwLockWriteGuard<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Debug::fmt(&**self, f) } } impl Display for RwLockWriteGuard<'_, T, R> { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { Display::fmt(&**self, f) } } -- cgit v1.3.1