From 578861c4fa26f01360c6ab971967a20b65dfcd67 Mon Sep 17 00:00:00 2001 From: Janis Date: Mon, 3 Apr 2023 17:01:35 +0200 Subject: [PATCH] helper functions for extent data structure access --- btrfs/src/structs.rs | 22 ++++++++++++++++++++++ btrfs/src/v2/file.rs | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/btrfs/src/structs.rs b/btrfs/src/structs.rs index af8dde2..063063c 100644 --- a/btrfs/src/structs.rs +++ b/btrfs/src/structs.rs @@ -376,6 +376,28 @@ pub struct ExtentData2 { num_bytes: U64, } +impl ExtentData2 { + pub fn extent_data1(&self) -> &ExtentData1 { + &self.header + } + + pub fn address(&self) -> u64 { + self.address.get() + } + + pub fn size(&self) -> u64 { + self.size.get() + } + + pub fn offset(&self) -> u64 { + self.offset.get() + } + + pub fn num_bytes(&self) -> u64 { + self.num_bytes.get() + } +} + #[repr(C, packed(1))] #[derive(Debug, Clone, Copy, FromBytes, AsBytes)] pub struct INodeRef { diff --git a/btrfs/src/v2/file.rs b/btrfs/src/v2/file.rs index 606a04a..8737104 100644 --- a/btrfs/src/v2/file.rs +++ b/btrfs/src/v2/file.rs @@ -5,7 +5,7 @@ use alloc::vec::Vec; use crate::structs::KnownObjectId; -#[derive(Clone)] +#[derive(Clone, PartialEq, Eq)] pub struct INode { pub id: u64, pub(crate) path: Vec>,