2 use std::marker::PhantomData;
5 pub struct TransactionImpl<'db> {
6 _marker: PhantomData<&'db ()>,
10 pub struct CursorImpl<'txn> {
11 _marker: PhantomData<&'txn ()>,
14 pub trait Cursor<'txn> {}
16 pub trait Transaction<'db>: Send + Sync + Debug + Sized {
17 type Cursor<'tx>: Cursor<'tx>
22 fn cursor<'tx>(&'tx self) -> Result<Self::Cursor<'tx>, ()>
27 impl<'tx> Cursor<'tx> for CursorImpl<'tx> {}
29 impl<'db> Transaction<'db> for TransactionImpl<'db> {
30 type Cursor<'tx> = CursorImpl<'tx>; //~ ERROR lifetime bound not satisfied
32 fn cursor<'tx>(&'tx self) -> Result<Self::Cursor<'tx>, ()>