add last method to queue

This commit is contained in:
soruh 2023-08-14 17:04:05 +02:00
parent 03455df253
commit 89495ae3be

View File

@ -256,6 +256,7 @@ impl<T: FromBytes + FromZeroes + AsBytes + Unaligned + Clone + Copy> FilePointer
Some(()) Some(())
} }
// 0 ist the next item to be returned
pub fn get(self, reader: &impl ReaderTrait, index: u64) -> Option<T> { pub fn get(self, reader: &impl ReaderTrait, index: u64) -> Option<T> {
let mut res = None; let mut res = None;
self.get_range_inner(reader, index..index + 1, |element| { self.get_range_inner(reader, index..index + 1, |element| {
@ -264,6 +265,10 @@ impl<T: FromBytes + FromZeroes + AsBytes + Unaligned + Clone + Copy> FilePointer
res res
} }
pub fn last(self, reader: &impl ReaderTrait, index: u64) -> Option<T> {
self.get(reader, self.length(reader) - 1)
}
pub fn length(self, reader: &impl ReaderTrait) -> u64 { pub fn length(self, reader: &impl ReaderTrait) -> u64 {
reader.read(field_ptr!(self, Queue<T>, length)).get() reader.read(field_ptr!(self, Queue<T>, length)).get()
} }