summaryrefslogtreecommitdiff
path: root/rust-src/bch_bindgen/src/btree.rs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-02-28 02:11:05 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-02-28 02:14:40 -0500
commitb6f30fd188b25d048e92e3b25abb28fbeb3f189f (patch)
tree5cc67477749f281d9e4fd0ec86a966cbb08694e9 /rust-src/bch_bindgen/src/btree.rs
parent59528398cf367df1e84372946b7031a2e3eb2b7e (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.rs37
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)
- }
-}