Trait GenericStoredVec

Source
pub trait GenericStoredVec<I, T>: Send + Sync
where I: StoredIndex, T: StoredType,
{ const SIZE_OF_T: usize = _;
Show 32 methods // Required methods fn read_(&self, index: usize, mmap: &Mmap) -> Result<Option<T>>; fn mmap(&self) -> &ArcSwap<Mmap>; fn stored_len(&self) -> usize; fn pushed(&self) -> &[T]; fn mut_pushed(&mut self) -> &mut Vec<T>; fn path(&self) -> &Path; fn flush(&mut self) -> Result<()>; fn truncate_if_needed(&mut self, index: I) -> Result<()>; // Provided methods fn read(&self, index: I, mmap: &Mmap) -> Result<Option<T>> { ... } fn get_or_read(&self, index: I, mmap: &Mmap) -> Result<Option<Value<'_, T>>> { ... } fn get_or_read_( &self, index: usize, mmap: &Mmap, ) -> Result<Option<Value<'_, T>>> { ... } fn len_(&self) -> usize { ... } fn pushed_len(&self) -> usize { ... } fn push(&mut self, value: T) { ... } fn open_file(&self) -> Result<File> { ... } fn open_file_(path: &Path) -> Result<File> { ... } fn file_set_len(&mut self, len: u64) -> Result<()> { ... } fn file_set_len_(file: &mut File, len: u64) -> Result<()> { ... } fn file_write_all(&mut self, buf: &[u8]) -> Result<()> { ... } fn file_truncate_and_write_all( &mut self, len: u64, buf: &[u8], ) -> Result<()> { ... } fn reset(&mut self) -> Result<()> { ... } fn new_mmap(file: File) -> Result<Arc<Mmap>> { ... } fn update_mmap(&mut self, file: File) -> Result<()> { ... } fn is_pushed_empty(&self) -> bool { ... } fn has(&self, index: I) -> Result<bool> { ... } fn has_(&self, index: usize) -> bool { ... } fn path_vec(&self) -> PathBuf { ... } fn path_vec_(path: &Path) -> PathBuf { ... } fn path_version_(path: &Path) -> PathBuf { ... } fn path_compressed_(path: &Path) -> PathBuf { ... } fn name_(&self) -> String { ... } fn modified_time_(&self) -> Result<Duration> { ... }
}

Provided Associated Constants§

Required Methods§

Source

fn read_(&self, index: usize, mmap: &Mmap) -> Result<Option<T>>

Source

fn mmap(&self) -> &ArcSwap<Mmap>

Source

fn stored_len(&self) -> usize

Source

fn pushed(&self) -> &[T]

Source

fn mut_pushed(&mut self) -> &mut Vec<T>

Source

fn path(&self) -> &Path

Source

fn flush(&mut self) -> Result<()>

Source

fn truncate_if_needed(&mut self, index: I) -> Result<()>

Provided Methods§

Source

fn read(&self, index: I, mmap: &Mmap) -> Result<Option<T>>

Source

fn get_or_read(&self, index: I, mmap: &Mmap) -> Result<Option<Value<'_, T>>>

Source

fn get_or_read_( &self, index: usize, mmap: &Mmap, ) -> Result<Option<Value<'_, T>>>

Source

fn len_(&self) -> usize

Source

fn pushed_len(&self) -> usize

Source

fn push(&mut self, value: T)

Examples found in repository?
examples/main.rs (line 17)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7    let _ = fs::remove_dir_all("./vec");
8
9    let version = Version::ZERO;
10    let format = Format::Compressed;
11
12    {
13        let mut vec: StoredVec<usize, u32> =
14            StoredVec::forced_import(Path::new("."), "vec", version, format)?;
15
16        (0..21_u32).for_each(|v| {
17            vec.push(v);
18        });
19
20        let mut iter = vec.into_iter();
21        dbg!(iter.get(0));
22        dbg!(iter.get(20));
23        dbg!(iter.get(21));
24
25        vec.flush()?;
26    }
27
28    {
29        let mut vec: StoredVec<usize, u32> =
30            StoredVec::forced_import(Path::new("."), "vec", version, format)?;
31        let mut iter = vec.into_iter();
32
33        dbg!(iter.get(0));
34        dbg!(iter.get(0));
35        dbg!(iter.get(1));
36        dbg!(iter.get(2));
37        dbg!(iter.get(20));
38        dbg!(iter.get(20));
39        dbg!(iter.get(0));
40
41        vec.push(21);
42        vec.push(22);
43
44        let mut iter = vec.into_iter();
45
46        dbg!(iter.get(20));
47        dbg!(iter.get(21));
48        dbg!(iter.get(22));
49        dbg!(iter.get(23));
50
51        vec.flush()?;
52    }
53
54    {
55        let mut vec: StoredVec<usize, u32> =
56            StoredVec::forced_import(Path::new("."), "vec", version, format)?;
57        let mut iter = vec.into_iter();
58
59        dbg!(iter.get(0));
60        dbg!(iter.get(20));
61        dbg!(iter.get(21));
62        dbg!(iter.get(22));
63
64        vec.truncate_if_needed(14)?;
65
66        let mut iter = vec.into_iter();
67
68        iter.get(0);
69        iter.get(5);
70        dbg!(iter.get(20));
71
72        dbg!(vec.collect_signed_range(Some(-5), None)?);
73
74        vec.push(vec.len() as u32);
75        dbg!(VecIterator::last(vec.into_iter()));
76
77        dbg!(vec.into_iter().collect::<Vec<_>>());
78    }
79
80    Ok(())
81}
Source

fn open_file(&self) -> Result<File>

Source

fn open_file_(path: &Path) -> Result<File>

Source

fn file_set_len(&mut self, len: u64) -> Result<()>

Source

fn file_set_len_(file: &mut File, len: u64) -> Result<()>

Source

fn file_write_all(&mut self, buf: &[u8]) -> Result<()>

Source

fn file_truncate_and_write_all(&mut self, len: u64, buf: &[u8]) -> Result<()>

Source

fn reset(&mut self) -> Result<()>

Source

fn new_mmap(file: File) -> Result<Arc<Mmap>>

Source

fn update_mmap(&mut self, file: File) -> Result<()>

Source

fn is_pushed_empty(&self) -> bool

Source

fn has(&self, index: I) -> Result<bool>

Source

fn has_(&self, index: usize) -> bool

Source

fn path_vec(&self) -> PathBuf

Source

fn path_vec_(path: &Path) -> PathBuf

Source

fn path_version_(path: &Path) -> PathBuf

Source

fn path_compressed_(path: &Path) -> PathBuf

Source

fn name_(&self) -> String

Source

fn modified_time_(&self) -> Result<Duration>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<I, T> GenericStoredVec<I, T> for StoredVec<I, T>
where I: StoredIndex, T: StoredType,

Source§

impl<I, T> GenericStoredVec<I, T> for CompressedVec<I, T>
where I: StoredIndex, T: StoredType,

Source§

impl<I, T> GenericStoredVec<I, T> for RawVec<I, T>
where I: StoredIndex, T: StoredType,