[][src]Struct memory_pager::Pager

pub struct Pager { /* fields omitted */ }

Memory pager instance. Manages Page instances.

Methods

impl Pager[src]

pub fn new(page_size: usize) -> Self[src]

Create a new Pager instance with a page_size.

pub fn from_file(
    file: &mut File,
    page_size: usize,
    offset: Option<usize>
) -> Result<Self, Error>
[src]

Create a new instance from a file.

This is particularly useful when restoring the memory-pager from disk, as it's possible to open a file, and directly convert it into a pager instance.

Options

The third argument is an optional offset of usize. This is useful to ignore the first few bytes if the file has a header that isn't part of the bitfield's body.

Errors

This method will return an error if the File length is not a multiple of page_size. It can also fail if it's unable to read the file's metadata.

Examples

use failure::Error;
use pager::Pager;
use std::fs;

fn main () -> Result<(), Error> {
  let mut file = fs::File::open("tests/fixtures/40_empty.bin")?;
  let page_size = 10;
  let _pager = Pager::from_file(&mut file, page_size, None)?;
  Ok(())
}

pub fn get_mut_or_alloc(&mut self, page_num: usize) -> &mut Page[src]

Get a Page mutably. The page will be allocated on first access.

pub fn get(&self, page_num: usize) -> Option<&Page>[src]

Get a Page wrapped in an Option enum. Does not allocate on access.

pub fn get_mut(&mut self, page_num: usize) -> Option<&mut Page>[src]

Get a mutable Page wrapped in an Option enum. Does not allocate on access.

pub fn len(&self) -> usize[src]

The number of pages held by memory-pager. Doesn't account for empty entries. Comparable to vec.len() in usage.

pub fn is_empty(&self) -> bool[src]

check whether the length is zero.

pub fn page_size(&self) -> usize[src]

Get the memory page size in bytes.

Important traits for Iter<'a>
pub fn iter(&self) -> Iter[src]

Iterate over &Pages.

Trait Implementations

impl Default for Pager[src]

Create a new Pager instance with a page_size of 1024.

impl Debug for Pager[src]

Auto Trait Implementations

impl Unpin for Pager

impl Sync for Pager

impl Send for Pager

impl UnwindSafe for Pager

impl RefUnwindSafe for Pager

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]