changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/lib/db/src/lib.rs

changeset 698: 96958d3eb5b0
parent: f3d814fb136a
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
8
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
1
 //! db modules
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
2
 //!
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
3
 //! This library provides types and builder functions for working with
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
4
 //! databases. Currently the only backend supported is RocksDB.
190
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
5
 #![feature(associated_type_defaults)]
213
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
6
 use obj::Configure;
189
3d78bed56188 apply clippy fixes
Richard Westhaver <ellis@rwest.io>
parents: 170
diff changeset
7
 #[cfg(feature = "rocksdb")]
170
Richard Westhaver <ellis@rwest.io>
parents: 168
diff changeset
8
 pub use rocksdb;
213
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
9
 use std::path::PathBuf;
170
Richard Westhaver <ellis@rwest.io>
parents: 168
diff changeset
10
 
8
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
11
 mod err;
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
12
 pub use err::{Error, Result};
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
13
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
14
 #[cfg(test)]
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
15
 mod tests;
190
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
16
 
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
17
 pub trait Db {
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
18
   #[cfg(feature = "rocksdb")]
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
19
   type DB = rocksdb::DB;
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
20
   #[cfg(not(feature = "rocksdb"))]
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
21
   type DB;
267
f3d814fb136a db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents: 213
diff changeset
22
   fn db_init(&self) -> Result<Self::DB>;
f3d814fb136a db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents: 213
diff changeset
23
   fn db_init_mut(&mut self) -> Result<()>;
190
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
24
   fn db_open(&self) -> Result<()>;
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
25
   fn db_close(&self) -> Result<()>;
267
f3d814fb136a db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents: 213
diff changeset
26
   fn db_close_mut(&mut self) -> Result<()>;
190
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
27
   fn db_query(&self) -> Result<()>;
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
28
   fn db_transaction(&self) -> Result<()>;
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
29
 }
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
30
 
213
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
31
 pub trait DbConfigExt: Configure {
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
32
   fn db_path(self) -> Option<PathBuf>;
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
33
   fn db_user(self) -> Option<String>;
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
34
   fn set_db_config_value(&mut self, key: &str, val: &str) -> Option<String>;
4f49127c9048 alik updates
Richard Westhaver <ellis@rwest.io>
parents: 190
diff changeset
35
   fn get_db_config_value(self, key: &str) -> Option<String>;
190
666388e32f2f init nu_plugin_rocksdb
Richard Westhaver <ellis@rwest.io>
parents: 189
diff changeset
36
 }