refactor
This commit is contained in:
parent
c54269bef5
commit
122e47303b
40
src/main.rs
40
src/main.rs
@ -246,12 +246,12 @@ impl From<&SourceQuestionsBatch> for BatchInfo {
|
||||
}
|
||||
}
|
||||
|
||||
impl Into<Vec<Question>> for SourceQuestionsBatch {
|
||||
fn into(self) -> Vec<Question> {
|
||||
let mut result = Vec::<Question>::with_capacity(self.questions.len());
|
||||
self.questions.iter().for_each(|item| {
|
||||
impl From<SourceQuestionsBatch> for Vec<Question> {
|
||||
fn from(src: SourceQuestionsBatch) -> Self {
|
||||
let mut result = Vec::<Question>::with_capacity(src.questions.len());
|
||||
src.questions.iter().for_each(|item| {
|
||||
let mut question: Question = item.clone().into();
|
||||
question.batch_info = BatchInfo::from(&self);
|
||||
question.batch_info = BatchInfo::from(&src);
|
||||
result.push(question);
|
||||
});
|
||||
|
||||
@ -264,7 +264,7 @@ pub fn measure<F: FnOnce()>(func: F) -> f64 {
|
||||
let start = Instant::now();
|
||||
func();
|
||||
let elapsed = start.elapsed();
|
||||
(elapsed.as_secs() as f64) + (elapsed.subsec_nanos() as f64 / 1000_000_000.0)
|
||||
(elapsed.as_secs() as f64) + (elapsed.subsec_nanos() as f64 / 1_000_000_000.0)
|
||||
}
|
||||
|
||||
pub fn measure_and_print<F: FnOnce()>(func: F) {
|
||||
@ -308,13 +308,12 @@ fn writer_v4() {
|
||||
(String::from(name_str), data)
|
||||
})
|
||||
.filter(|(_, data)| data.is_ok())
|
||||
.map(|(filename, data)| {
|
||||
.flat_map(|(filename, data)| {
|
||||
let mut data = data.unwrap();
|
||||
data.filename = filename.clone();
|
||||
data.filename = filename;
|
||||
let questions: Vec<Question> = data.into();
|
||||
questions
|
||||
})
|
||||
.flatten()
|
||||
.for_each(|question| {
|
||||
let result = collection.insert(&question);
|
||||
if result.is_err() {
|
||||
@ -329,6 +328,11 @@ fn writer_v4() {
|
||||
});
|
||||
|
||||
println!("inserted {}", count);
|
||||
storage.sync(true).unwrap();
|
||||
print!("stats: ");
|
||||
let stats = storage.stat().unwrap();
|
||||
println!("{:?}", stats);
|
||||
drop(storage);
|
||||
}
|
||||
|
||||
fn print_question(q: Question) {
|
||||
@ -347,13 +351,7 @@ fn reader_v1() -> Option<Question> {
|
||||
let data = data.unwrap();
|
||||
let questions: Vec<Question> = data.into();
|
||||
|
||||
let ret = questions.iter().choose(&mut rng);
|
||||
|
||||
if let Some(question) = ret {
|
||||
Some(question.clone())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
questions.into_iter().choose(&mut rng)
|
||||
}
|
||||
|
||||
fn compact_db() {
|
||||
@ -367,13 +365,11 @@ fn compact_db() {
|
||||
.unwrap();
|
||||
|
||||
let storage = Storage::new("db", options).unwrap();
|
||||
//let collection = storage.collection("questions").unwrap();
|
||||
|
||||
//query!(index for collection
|
||||
// num int,
|
||||
// batch_info.filename str,
|
||||
//)
|
||||
//.unwrap();
|
||||
storage.sync(true).unwrap();
|
||||
let stats = storage.stat().unwrap();
|
||||
println!("{:?}", stats);
|
||||
drop(storage);
|
||||
}
|
||||
|
||||
fn reader_v4() -> Option<Question> {
|
||||
|
Loading…
Reference in New Issue
Block a user