Crates.io | flex-page |
lib.rs | flex-page |
version | 2.1.0 |
source | src |
created_at | 2022-01-26 22:29:58.235786 |
updated_at | 2022-02-17 09:24:29.586579 |
description | Database storage system |
homepage | |
repository | https://github.com/nurmohammed840/flex-page.rs |
max_upload_size | |
id | 522228 |
size | 21,381 |
This library provides a interface to create database pages.
A page is a fixed size buffer that can be used to store data.
In your cargo.toml:
[dependencies]
flex-page = "2"
use std::fs::{File, remove_file};
use flex_page::Pages;
let file = File::options()
.read(true)
.write(true)
.create(true)
.open("_foo_").unwrap();
// First generic argument is the page number type. Number of page that can be stored in the file.
// Second generic argument is the size of the page.
let pages: Pages<64> = Pages::open(file).unwrap();
// Create a page.
pages.create([1; 64]).unwrap();
// Overwrite a page.
pages.write(0, [2; 64]).unwrap();
// Read a page.
assert_eq!(pages.read(0).unwrap(), [2; 64]);
assert_eq!(pages.len(), 1);
// Alloc 2 more pages
pages.alloc(2).unwrap();
assert_eq!(pages.len(), 3);
remove_file("_foo_");
See /tests folder for more examples.