pub trait DatabaseCore {
// Required methods
fn insert(&self, table: &str, key: &[u8], value: &[u8]) -> DbxResult<()>;
fn get(&self, table: &str, key: &[u8]) -> DbxResult<Option<Vec<u8>>>;
fn delete(&self, table: &str, key: &[u8]) -> DbxResult<()>;
fn scan(&self, table: &str) -> DbxResult<Vec<(Vec<u8>, Vec<u8>)>>;
fn flush(&self) -> DbxResult<()>;
fn insert_batch(
&self,
table: &str,
entries: Vec<(Vec<u8>, Vec<u8>)>,
) -> DbxResult<()>;
fn insert_if_not_exists(
&self,
table: &str,
key: &[u8],
value: &[u8],
) -> DbxResult<bool>;
fn compare_and_swap(
&self,
table: &str,
key: &[u8],
expected: &[u8],
new_value: &[u8],
) -> DbxResult<bool>;
fn update_if_exists(
&self,
table: &str,
key: &[u8],
value: &[u8],
) -> DbxResult<bool>;
fn delete_if_equals(
&self,
table: &str,
key: &[u8],
expected: &[u8],
) -> DbxResult<bool>;
}Expand description
핵심 CRUD 작업을 제공하는 Trait
Required Methods§
Sourcefn insert_batch(
&self,
table: &str,
entries: Vec<(Vec<u8>, Vec<u8>)>,
) -> DbxResult<()>
fn insert_batch( &self, table: &str, entries: Vec<(Vec<u8>, Vec<u8>)>, ) -> DbxResult<()>
배치 삽입
Sourcefn insert_if_not_exists(
&self,
table: &str,
key: &[u8],
value: &[u8],
) -> DbxResult<bool>
fn insert_if_not_exists( &self, table: &str, key: &[u8], value: &[u8], ) -> DbxResult<bool>
값이 없을 때만 삽입 (Atomic CAS)
Sourcefn compare_and_swap(
&self,
table: &str,
key: &[u8],
expected: &[u8],
new_value: &[u8],
) -> DbxResult<bool>
fn compare_and_swap( &self, table: &str, key: &[u8], expected: &[u8], new_value: &[u8], ) -> DbxResult<bool>
기존 값과 비교하여 일치할 때만 새로운 값으로 교체 (Atomic CAS)