1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use super::common::{PagerNumberOfPages, PagerPageSize, PagerStorageMode};
use core::fmt::Debug;

use std::io::{Read, Write};

#[derive(Debug, PartialEq, Eq)]
pub struct Pager<T>
where
  T: StorageEngine + Debug,
{
  num_pages: PagerNumberOfPages,
  page_size: PagerPageSize,
  storage: PagerStorage<T>,
}

#[derive(Debug, PartialEq, Eq)]
pub struct PagerStorage<T>
where
  T: StorageEngine + Debug,
{
  mode: PagerStorageMode,
  engine: PagerStorageEngine<T>,
}

#[derive(Debug, PartialEq, Eq)]
pub struct PagerStorageEngine<T>(T)
where
  T: StorageEngine + Debug;

pub trait StorageEngine: Read + Write {}