diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-02-28 02:11:05 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-02-28 02:14:40 -0500 |
commit | b6f30fd188b25d048e92e3b25abb28fbeb3f189f (patch) | |
tree | 5cc67477749f281d9e4fd0ec86a966cbb08694e9 /rust-src/bch_bindgen/src/btree.rs | |
parent | 59528398cf367df1e84372946b7031a2e3eb2b7e (diff) |
rust: BkeyValC
Now we have a rust-style enum for key types
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'rust-src/bch_bindgen/src/btree.rs')
-rw-r--r-- | rust-src/bch_bindgen/src/btree.rs | 37 |
1 files changed, 3 insertions, 34 deletions
diff --git a/rust-src/bch_bindgen/src/btree.rs b/rust-src/bch_bindgen/src/btree.rs index 4b5e86d9..92606be1 100644 --- a/rust-src/bch_bindgen/src/btree.rs +++ b/rust-src/bch_bindgen/src/btree.rs @@ -1,13 +1,14 @@ +#![allow(non_snake_case)] + use crate::SPOS_MAX; use crate::c; +use crate::bkey::BkeySC; use crate::fs::Fs; use crate::errcode::{bch_errcode, errptr_to_result_c}; use std::marker::PhantomData; use std::mem::MaybeUninit; use std::ptr; use bitflags::bitflags; -use std::ffi::CStr; -use std::fmt; pub struct BtreeTrans { raw: c::btree_trans, @@ -105,35 +106,3 @@ impl<'a> Drop for BtreeIter<'a> { unsafe { c::bch2_trans_iter_exit(self.raw.trans, &mut self.raw) } } } - -pub struct BkeySC<'a> { - pub k: &'a c::bkey, - pub v: &'a c::bch_val, -} - -impl<'a, 'b> BkeySC<'a> { - unsafe fn to_raw(&self) -> c::bkey_s_c { - c::bkey_s_c { k: self.k, v: self.v } - } - - pub fn to_text(&'a self, fs: &'b Fs) -> BkeySCToText<'a, 'b> { - BkeySCToText { k: self, fs } - } -} - -pub struct BkeySCToText<'a, 'b> { - k: &'a BkeySC<'a>, - fs: &'b Fs, -} - -impl<'a, 'b> fmt::Display for BkeySCToText<'a, 'b> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let mut buf = c::printbuf::new(); - - unsafe { c::bch2_bkey_val_to_text(&mut buf, self.fs.raw, self.k.to_raw()) }; - - let s = unsafe { CStr::from_ptr(buf.buf) }; - let s = s.to_str().unwrap(); - write!(f, "{}", s) - } -} |