summaryrefslogtreecommitdiff
path: root/src/iterator.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/iterator.rs')
-rw-r--r--src/iterator.rs29
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,
}