diff options
Diffstat (limited to 'src/iterator.rs')
| -rw-r--r-- | src/iterator.rs | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/iterator.rs b/src/iterator.rs index 30b01e0..79a2cc5 100644 --- a/src/iterator.rs +++ b/src/iterator.rs @@ -1,18 +1,29 @@ -mod consumed_guard; +use std::marker::PhantomData; + +use crate::ThreadKey; + +mod context; mod guard; mod iterator; +mod tuple; -pub struct LockingIterator<L, Key> { - key: Key, - lockable: L, +pub struct LockingIterator<'context, I> { + key: &'context ThreadKey, + iterator: I, } -pub struct IteratorGuard<'a, Guard, Key> { - _key: &'a Key, - guard: Guard, +pub struct LockingTuple<'context, L, C> { + _lockable: PhantomData<L>, + key: &'context ThreadKey, + tuple: &'context C, } -pub struct ConsumedIteratorGuard<Guard, Key> { - key: Key, +pub struct LockContext<'l, L> { + key: Option<ThreadKey>, + lockable: &'l L, +} + +pub struct IteratorGuard<'a, Guard, Key> { + _key: &'a Key, guard: Guard, } |
