summaryrefslogtreecommitdiff
path: root/bch_bindgen/src/bkey.rs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-02-24 18:44:45 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-02-24 18:44:45 -0500
commit9ed434861f137d2a89ff665d0a32f7feb1a46581 (patch)
tree394e34ec7b3e056942ee8f062aad27e420eb5112 /bch_bindgen/src/bkey.rs
parent03272a1e5559ce508400862285b8a3f05c500955 (diff)
bkey.rs: use a single unsafe {} for BkeyValC conversion
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'bch_bindgen/src/bkey.rs')
-rw-r--r--bch_bindgen/src/bkey.rs80
1 files changed, 41 insertions, 39 deletions
diff --git a/bch_bindgen/src/bkey.rs b/bch_bindgen/src/bkey.rs
index d4830839..258e2434 100644
--- a/bch_bindgen/src/bkey.rs
+++ b/bch_bindgen/src/bkey.rs
@@ -61,46 +61,48 @@ impl<'a, 'b> BkeySC<'a> {
}
pub fn v(&'a self) -> BkeyValC {
- let ty: c::bch_bkey_type = unsafe { transmute(self.k.type_ as u32) };
+ unsafe {
+ let ty: c::bch_bkey_type = transmute(self.k.type_ as u32);
- use c::bch_bkey_type::*;
- use BkeyValC::*;
- match ty {
- KEY_TYPE_deleted => deleted,
- KEY_TYPE_whiteout => whiteout,
- KEY_TYPE_error => error,
- KEY_TYPE_cookie => cookie(unsafe { transmute(self.v) }),
- KEY_TYPE_hash_whiteout => hash_whiteout(unsafe { transmute(self.v) }),
- KEY_TYPE_btree_ptr => btree_ptr(unsafe { transmute(self.v) }),
- KEY_TYPE_extent => extent(unsafe { transmute(self.v) }),
- KEY_TYPE_reservation => reservation(unsafe { transmute(self.v) }),
- KEY_TYPE_inode => inode(unsafe { transmute(self.v) }),
- KEY_TYPE_inode_generation => inode_generation(unsafe { transmute(self.v) }),
- KEY_TYPE_dirent => dirent(unsafe { transmute(self.v) }),
- KEY_TYPE_xattr => xattr(unsafe { transmute(self.v) }),
- KEY_TYPE_alloc => alloc(unsafe { transmute(self.v) }),
- KEY_TYPE_quota => quota(unsafe { transmute(self.v) }),
- KEY_TYPE_stripe => stripe(unsafe { transmute(self.v) }),
- KEY_TYPE_reflink_p => reflink_p(unsafe { transmute(self.v) }),
- KEY_TYPE_reflink_v => reflink_v(unsafe { transmute(self.v) }),
- KEY_TYPE_inline_data => inline_data(unsafe { transmute(self.v) }),
- KEY_TYPE_btree_ptr_v2 => btree_ptr_v2(unsafe { transmute(self.v) }),
- KEY_TYPE_indirect_inline_data => indirect_inline_data(unsafe { transmute(self.v) }),
- KEY_TYPE_alloc_v2 => alloc_v2(unsafe { transmute(self.v) }),
- KEY_TYPE_subvolume => subvolume(unsafe { transmute(self.v) }),
- KEY_TYPE_snapshot => snapshot(unsafe { transmute(self.v) }),
- KEY_TYPE_inode_v2 => inode_v2(unsafe { transmute(self.v) }),
- KEY_TYPE_alloc_v3 => inode_v3(unsafe { transmute(self.v) }),
- KEY_TYPE_set => set,
- KEY_TYPE_lru => lru(unsafe { transmute(self.v) }),
- KEY_TYPE_alloc_v4 => alloc_v4(unsafe { transmute(self.v) }),
- KEY_TYPE_backpointer => backpointer(unsafe { transmute(self.v) }),
- KEY_TYPE_inode_v3 => inode_v3(unsafe { transmute(self.v) }),
- KEY_TYPE_bucket_gens => bucket_gens(unsafe { transmute(self.v) }),
- KEY_TYPE_snapshot_tree => snapshot_tree(unsafe { transmute(self.v) }),
- KEY_TYPE_logged_op_truncate => logged_op_truncate(unsafe { transmute(self.v) }),
- KEY_TYPE_logged_op_finsert => logged_op_finsert(unsafe { transmute(self.v) }),
- KEY_TYPE_MAX => unreachable!(),
+ use c::bch_bkey_type::*;
+ use BkeyValC::*;
+ match ty {
+ KEY_TYPE_deleted => deleted,
+ KEY_TYPE_whiteout => whiteout,
+ KEY_TYPE_error => error,
+ KEY_TYPE_cookie => cookie(transmute(self.v)),
+ KEY_TYPE_hash_whiteout => hash_whiteout(transmute(self.v)),
+ KEY_TYPE_btree_ptr => btree_ptr(transmute(self.v)),
+ KEY_TYPE_extent => extent(transmute(self.v)),
+ KEY_TYPE_reservation => reservation(transmute(self.v)),
+ KEY_TYPE_inode => inode(transmute(self.v)),
+ KEY_TYPE_inode_generation => inode_generation(transmute(self.v)),
+ KEY_TYPE_dirent => dirent(transmute(self.v)),
+ KEY_TYPE_xattr => xattr(transmute(self.v)),
+ KEY_TYPE_alloc => alloc(transmute(self.v)),
+ KEY_TYPE_quota => quota(transmute(self.v)),
+ KEY_TYPE_stripe => stripe(transmute(self.v)),
+ KEY_TYPE_reflink_p => reflink_p(transmute(self.v)),
+ KEY_TYPE_reflink_v => reflink_v(transmute(self.v)),
+ KEY_TYPE_inline_data => inline_data(transmute(self.v)),
+ KEY_TYPE_btree_ptr_v2 => btree_ptr_v2(transmute(self.v)),
+ KEY_TYPE_indirect_inline_data => indirect_inline_data(transmute(self.v)),
+ KEY_TYPE_alloc_v2 => alloc_v2(transmute(self.v)),
+ KEY_TYPE_subvolume => subvolume(transmute(self.v)),
+ KEY_TYPE_snapshot => snapshot(transmute(self.v)),
+ KEY_TYPE_inode_v2 => inode_v2(transmute(self.v)),
+ KEY_TYPE_alloc_v3 => inode_v3(transmute(self.v)),
+ KEY_TYPE_set => set,
+ KEY_TYPE_lru => lru(transmute(self.v)),
+ KEY_TYPE_alloc_v4 => alloc_v4(transmute(self.v)),
+ KEY_TYPE_backpointer => backpointer(transmute(self.v)),
+ KEY_TYPE_inode_v3 => inode_v3(transmute(self.v)),
+ KEY_TYPE_bucket_gens => bucket_gens(transmute(self.v)),
+ KEY_TYPE_snapshot_tree => snapshot_tree(transmute(self.v)),
+ KEY_TYPE_logged_op_truncate => logged_op_truncate(transmute(self.v)),
+ KEY_TYPE_logged_op_finsert => logged_op_finsert(transmute(self.v)),
+ KEY_TYPE_MAX => unreachable!(),
+ }
}
}
}