aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-02-28 02:28:44 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-02-28 02:28:44 -0500
commitdaebbc085d74dc7666dd704f48fa4ed5c0005f75 (patch)
treed10ad62cacfe4e619c61578a13165f3ed36bd735
parentb6f30fd188b25d048e92e3b25abb28fbeb3f189f (diff)
downloadbcachefs-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.rs23
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) }
}