From fbdfc775bd1642a469f8a3fa0aa9beb91ca760d6 Mon Sep 17 00:00:00 2001 From: Mica White Date: Sat, 7 Mar 2026 15:53:50 -0600 Subject: Create basic locking iterator --- src/collection/owned.rs | 10 ++++++++++ src/lib.rs | 1 + 2 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/collection/owned.rs b/src/collection/owned.rs index 456742b..2172b96 100755 --- a/src/collection/owned.rs +++ b/src/collection/owned.rs @@ -1,3 +1,4 @@ +use crate::iterator::LockingIterator; use crate::lockable::{ Lockable, LockableGetMut, LockableIntoInner, OwnedLockable, RawLock, Sharable, }; @@ -642,6 +643,15 @@ impl OwnedLockCollection { } } +impl OwnedLockCollection +where + for<'a> &'a L: IntoIterator, +{ + pub fn locking_iter(&self, key: ThreadKey) -> LockingIterator<<&L as IntoIterator>::IntoIter> { + LockingIterator::new(key, (&self.child).into_iter()) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/lib.rs b/src/lib.rs index 2139d6b..15d5ca5 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -168,6 +168,7 @@ mod handle_unwind; mod key; pub mod collection; +pub mod iterator; pub mod lockable; pub mod mutex; pub mod poisonable; -- cgit v1.2.3