Move concrete Cursor definitions on top

This commit is contained in:
Yuriy Dupyn 2024-02-04 15:46:43 +01:00
parent 017f34bafa
commit dac888dc51

View file

@ -15,6 +15,25 @@ use crate::entry_header::{EntryHeaderWithDataSize, EntryHeader};
use crate::store_header::StoreHeader;
use crate::storage_engine::{Store, FilePosition, Column, Result, ROWS_FILE_NAME, GARBAGE_COLLECTION_INTERMEDIATE_ROWS_FILE_NAME};
// ===Concrete Cursors===
pub struct ReadCursor<T> {
header: StoreHeader,
file: File,
data_type: PhantomData<T>,
eof_file_position: FilePosition,
}
pub struct WriteCursor<'a, T> {
header: &'a mut StoreHeader,
file: File,
data_type: PhantomData<T>,
eof_file_position: FilePosition,
}
// ===Traits===
#[async_trait]
// TODO: Make this private
pub trait PrimitiveCursor<T> {
@ -206,23 +225,6 @@ pub trait CursorWithStoreHeader<T>: PrimitiveCursor<T> {
}
// ===Concrete Cursors===
pub struct ReadCursor<T> {
header: StoreHeader,
file: File,
data_type: PhantomData<T>,
eof_file_position: FilePosition,
}
pub struct WriteCursor<'a, T> {
header: &'a mut StoreHeader,
file: File,
data_type: PhantomData<T>,
eof_file_position: FilePosition,
}
// ===PrimitiveCursor===
impl <T>PrimitiveCursor<T> for ReadCursor<T> {
fn file(&mut self) -> &mut File {