diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-02-28 02:28:44 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-02-28 02:28:44 -0500 |
commit | daebbc085d74dc7666dd704f48fa4ed5c0005f75 (patch) | |
tree | d10ad62cacfe4e619c61578a13165f3ed36bd735 | |
parent | b6f30fd188b25d048e92e3b25abb28fbeb3f189f (diff) | |
download | bcachefs-tools-daebbc085d74dc7666dd704f48fa4ed5c0005f75.tar.gz |
rust: BtreeTrans lifetime now marked w.r.t. Fs
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | rust-src/bch_bindgen/src/btree.rs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/rust-src/bch_bindgen/src/btree.rs b/rust-src/bch_bindgen/src/btree.rs index 92606be1..7877b6e2 100644 --- a/rust-src/bch_bindgen/src/btree.rs +++ b/rust-src/bch_bindgen/src/btree.rs @@ -10,22 +10,23 @@ use std::mem::MaybeUninit; use std::ptr; use bitflags::bitflags; -pub struct BtreeTrans { +pub struct BtreeTrans<'f> { raw: c::btree_trans, + fs: PhantomData<&'f Fs> } -impl BtreeTrans { - pub fn new<'a>(fs: &'a Fs) -> BtreeTrans { +impl<'f> BtreeTrans<'f> { + pub fn new(fs: &'f Fs) -> BtreeTrans { unsafe { - let mut trans: MaybeUninit<BtreeTrans> = MaybeUninit::uninit(); + let mut trans: MaybeUninit<c::btree_trans> = MaybeUninit::uninit(); - c::__bch2_trans_init(&mut (*trans.as_mut_ptr()).raw, fs.raw, 0); - trans.assume_init() + c::__bch2_trans_init(&mut (*trans.as_mut_ptr()), fs.raw, 0); + BtreeTrans { raw: trans.assume_init(), fs: PhantomData } } } } -impl Drop for BtreeTrans { +impl<'f> Drop for BtreeTrans<'f> { fn drop(&mut self) { unsafe { c::bch2_trans_exit(&mut self.raw) } } @@ -52,13 +53,13 @@ bitflags! { } } -pub struct BtreeIter<'a> { +pub struct BtreeIter<'t> { raw: c::btree_iter, - trans: PhantomData<&'a BtreeTrans>, + trans: PhantomData<&'t BtreeTrans<'t>>, } impl<'t> BtreeIter<'t> { - pub fn new(trans: &'t BtreeTrans, btree: c::btree_id, pos: c::bpos, flags: BtreeIterFlags) -> BtreeIter { + pub fn new(trans: &'t BtreeTrans<'t>, btree: c::btree_id, pos: c::bpos, flags: BtreeIterFlags) -> BtreeIter<'t> { unsafe { let mut iter: MaybeUninit<c::btree_iter> = MaybeUninit::uninit(); @@ -101,7 +102,7 @@ impl<'t> BtreeIter<'t> { } } -impl<'a> Drop for BtreeIter<'a> { +impl<'t> Drop for BtreeIter<'t> { fn drop(&mut self) { unsafe { c::bch2_trans_iter_exit(self.raw.trans, &mut self.raw) } } |