Move the push update functions to their related modules

This commit is contained in:
Clément Renault 2019-10-08 17:24:11 +02:00
parent 6ee0d72c7b
commit 0a5ad4db06
No known key found for this signature in database
GPG key ID: 92ADA4E935E71FA4
6 changed files with 94 additions and 106 deletions

View file

@ -8,7 +8,7 @@ use serde::Serialize;
use crate::raw_indexer::RawIndexer;
use crate::serde::{extract_document_id, Serializer, RamDocumentStore};
use crate::store;
use crate::update::{push_documents_addition, apply_documents_deletion};
use crate::update::{Update, next_update_id, apply_documents_deletion};
use crate::{MResult, Error, RankedMap};
pub struct DocumentsAddition<D> {
@ -59,6 +59,28 @@ impl<D> Extend<D> for DocumentsAddition<D> {
}
}
pub fn push_documents_addition<D: serde::Serialize>(
writer: &mut rkv::Writer,
updates_store: store::Updates,
updates_results_store: store::UpdatesResults,
addition: Vec<D>,
) -> MResult<u64>
{
let mut values = Vec::with_capacity(addition.len());
for add in addition {
let vec = rmp_serde::to_vec_named(&add)?;
let add = rmp_serde::from_read(&vec[..])?;
values.push(add);
}
let last_update_id = next_update_id(writer, updates_store, updates_results_store)?;
let update = Update::DocumentsAddition(values);
let update_id = updates_store.put_update(writer, last_update_id, &update)?;
Ok(last_update_id)
}
pub fn apply_documents_addition(
writer: &mut rkv::Writer,
main_store: store::Main,