Skip to main content

DatabaseCore

Trait DatabaseCore 

Source
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§

Source

fn insert(&self, table: &str, key: &[u8], value: &[u8]) -> DbxResult<()>

데이터 삽입

Source

fn get(&self, table: &str, key: &[u8]) -> DbxResult<Option<Vec<u8>>>

데이터 조회

Source

fn delete(&self, table: &str, key: &[u8]) -> DbxResult<()>

데이터 삭제

Source

fn scan(&self, table: &str) -> DbxResult<Vec<(Vec<u8>, Vec<u8>)>>

전체 스캔

Source

fn flush(&self) -> DbxResult<()>

메모리 → 디스크 플러시

Source

fn insert_batch( &self, table: &str, entries: Vec<(Vec<u8>, Vec<u8>)>, ) -> DbxResult<()>

배치 삽입

Source

fn insert_if_not_exists( &self, table: &str, key: &[u8], value: &[u8], ) -> DbxResult<bool>

값이 없을 때만 삽입 (Atomic CAS)

Source

fn compare_and_swap( &self, table: &str, key: &[u8], expected: &[u8], new_value: &[u8], ) -> DbxResult<bool>

기존 값과 비교하여 일치할 때만 새로운 값으로 교체 (Atomic CAS)

Source

fn update_if_exists( &self, table: &str, key: &[u8], value: &[u8], ) -> DbxResult<bool>

기존 값이 존재할 때만 업데이트 (Atomic CAS)

Source

fn delete_if_equals( &self, table: &str, key: &[u8], expected: &[u8], ) -> DbxResult<bool>

기존 값과 일치할 때만 삭제 (Atomic CAS)

Implementors§