aboutsummaryrefslogtreecommitdiffstats
path: root/log_db/benches/utils.rs
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-02-21 16:15:29 +0200
committerJan Tuomi <jan@jantuomi.fi>2025-02-21 16:15:29 +0200
commitdaca0e6b68d32d885face00d68df5b5cb00e098b (patch)
tree60a3c73463efde0f890fdd681f438b504477d04a /log_db/benches/utils.rs
parent18ae1c7ad6d45f42f39472f5b76b3f19d2b357b1 (diff)
Remove <T> polymorphism from DB, replace with From<T> based approach
Diffstat (limited to 'log_db/benches/utils.rs')
-rw-r--r--log_db/benches/utils.rs40
1 files changed, 23 insertions, 17 deletions
diff --git a/log_db/benches/utils.rs b/log_db/benches/utils.rs
index d25a5af..33a45cf 100644
--- a/log_db/benches/utils.rs
+++ b/log_db/benches/utils.rs
@@ -33,25 +33,19 @@ impl Into<String> for Field {
}
}
-impl Inst {
- pub fn fields() -> Vec<Field> {
- vec![Field::Id, Field::Name, Field::Data]
- }
- pub fn primary_key() -> Field {
- Field::Id
- }
- pub fn secondary_keys() -> Vec<Field> {
- vec![Field::Name]
- }
-
- pub fn into_record(self) -> Vec<Value> {
+impl From<Inst> for Record {
+ fn from(inst: Inst) -> Self {
vec![
- Value::Int(self.id),
- Value::String(self.name),
- Value::Bytes(self.data),
+ Value::Int(inst.id),
+ Value::String(inst.name),
+ Value::Bytes(inst.data),
]
+ .into()
}
- pub fn from_record(record: Vec<Value>) -> Self {
+}
+
+impl From<Record> for Inst {
+ fn from(record: Record) -> Self {
let mut it = record.into_iter();
Inst {
id: match it.next().unwrap() {
@@ -70,6 +64,18 @@ impl Inst {
}
}
+impl Inst {
+ pub fn fields() -> Vec<Field> {
+ vec![Field::Id, Field::Name, Field::Data]
+ }
+ pub fn primary_key() -> Field {
+ Field::Id
+ }
+ pub fn secondary_keys() -> Vec<Field> {
+ vec![Field::Name]
+ }
+}
+
// Function to generate a random integer
pub fn random_int(from: i64, to: i64) -> i64 {
let mut rng = rand::thread_rng();
@@ -98,7 +104,7 @@ pub fn random_inst(from_id: i64, to_id: i64) -> Inst {
}
pub fn prefill_db(
- db: &mut DB<Inst>,
+ db: &mut DB,
insts: &mut Vec<Inst>,
n_records: usize,
compact: bool,