vortex_file/footer/
segment.rs1use vortex_buffer::Alignment;
2use vortex_error::VortexError;
3use vortex_flatbuffers::footer as fb;
4
5#[derive(Clone, Debug)]
7pub struct Segment {
8 pub offset: u64,
9 pub length: u32,
10 pub alignment: Alignment,
11}
12
13impl From<&Segment> for fb::Segment {
14 fn from(value: &Segment) -> Self {
15 fb::Segment::new(value.offset, value.length, value.alignment.exponent(), 0, 0)
16 }
17}
18
19impl TryFrom<&fb::Segment> for Segment {
20 type Error = VortexError;
21
22 fn try_from(value: &fb::Segment) -> Result<Self, Self::Error> {
23 Ok(Self {
24 offset: value.offset(),
25 length: value.length(),
26 alignment: Alignment::from_exponent(value.alignment_exponent()),
27 })
28 }
29}