leveldb/database/
compaction.rs

1use super::Database;
2use cruzbit_leveldb_sys::leveldb_compact_range;
3use libc::{c_char, size_t};
4
5pub trait Compaction<'a> {
6    fn compact(&self, start: &'a [u8], limit: &'a [u8]);
7}
8
9impl<'a> Compaction<'a> for Database {
10    fn compact(&self, start: &'a [u8], limit: &'a [u8]) {
11        unsafe {
12            leveldb_compact_range(
13                self.database.ptr,
14                start.as_ptr() as *mut c_char,
15                start.len() as size_t,
16                limit.as_ptr() as *mut c_char,
17                limit.len() as size_t,
18            );
19        }
20    }
21}