From 0ccf4cf78577f7d11502f24aa96b8e35d46ae89e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Renault?= Date: Sun, 1 Nov 2020 14:55:06 +0100 Subject: [PATCH] Simplify the IndexDocuments builder creation from the UpdateBuilder --- src/update/index_documents/mod.rs | 68 ++++++------------------------- src/update/update_builder.rs | 56 ++++++++----------------- 2 files changed, 28 insertions(+), 96 deletions(-) diff --git a/src/update/index_documents/mod.rs b/src/update/index_documents/mod.rs index 9b6083cec..ce4e8c2df 100644 --- a/src/update/index_documents/mod.rs +++ b/src/update/index_documents/mod.rs @@ -194,14 +194,14 @@ pub enum UpdateFormat { pub struct IndexDocuments<'t, 'u, 'i> { wtxn: &'t mut heed::RwTxn<'i, 'u>, index: &'i Index, - log_every_n: Option, - max_nb_chunks: Option, - max_memory: Option, - linked_hash_map_size: Option, - chunk_compression_type: CompressionType, - chunk_compression_level: Option, - chunk_fusing_shrink_size: Option, - indexing_jobs: Option, + pub(crate) log_every_n: Option, + pub(crate) max_nb_chunks: Option, + pub(crate) max_memory: Option, + pub(crate) linked_hash_map_size: Option, + pub(crate) chunk_compression_type: CompressionType, + pub(crate) chunk_compression_level: Option, + pub(crate) chunk_fusing_shrink_size: Option, + pub(crate) indexing_jobs: Option, update_method: IndexDocumentsMethod, update_format: UpdateFormat, autogenerate_docids: bool, @@ -226,64 +226,20 @@ impl<'t, 'u, 'i> IndexDocuments<'t, 'u, 'i> { } } - pub(crate) fn log_every_n(&mut self, log_every_n: usize) -> &mut Self { - self.log_every_n = Some(log_every_n); - self - } - - pub(crate) fn max_nb_chunks(&mut self, max_nb_chunks: usize) -> &mut Self { - self.max_nb_chunks = Some(max_nb_chunks); - self - } - - pub(crate) fn max_memory(&mut self, max_memory: usize) -> &mut Self { - self.max_memory = Some(max_memory); - self - } - - pub(crate) fn linked_hash_map_size(&mut self, linked_hash_map_size: usize) -> &mut Self { - self.linked_hash_map_size = Some(linked_hash_map_size); - self - } - - pub(crate) fn chunk_compression_type(&mut self, chunk_compression_type: CompressionType) -> &mut Self { - self.chunk_compression_type = chunk_compression_type; - self - } - - pub(crate) fn chunk_compression_level(&mut self, chunk_compression_level: u32) -> &mut Self { - self.chunk_compression_level = Some(chunk_compression_level); - self - } - - pub(crate) fn chunk_fusing_shrink_size(&mut self, chunk_fusing_shrink_size: u64) -> &mut Self { - self.chunk_fusing_shrink_size = Some(chunk_fusing_shrink_size); - self - } - - pub(crate) fn indexing_jobs(&mut self, indexing_jobs: usize) -> &mut Self { - self.indexing_jobs = Some(indexing_jobs); - self - } - - pub fn index_documents_method(&mut self, method: IndexDocumentsMethod) -> &mut Self { + pub fn index_documents_method(&mut self, method: IndexDocumentsMethod) { self.update_method = method; - self } - pub fn update_format(&mut self, format: UpdateFormat) -> &mut Self { + pub fn update_format(&mut self, format: UpdateFormat) { self.update_format = format; - self } - pub fn enable_autogenerate_docids(&mut self) -> &mut Self { + pub fn enable_autogenerate_docids(&mut self) { self.autogenerate_docids = true; - self } - pub fn disable_autogenerate_docids(&mut self) -> &mut Self { + pub fn disable_autogenerate_docids(&mut self) { self.autogenerate_docids = false; - self } pub fn execute(self, reader: R, progress_callback: F) -> anyhow::Result<()> diff --git a/src/update/update_builder.rs b/src/update/update_builder.rs index 42c4f0754..46123fbfc 100644 --- a/src/update/update_builder.rs +++ b/src/update/update_builder.rs @@ -30,44 +30,36 @@ impl UpdateBuilder { } } - pub fn log_every_n(&mut self, log_every_n: usize) -> &mut Self { + pub fn log_every_n(&mut self, log_every_n: usize) { self.log_every_n = Some(log_every_n); - self } - pub fn max_nb_chunks(&mut self, max_nb_chunks: usize) -> &mut Self { + pub fn max_nb_chunks(&mut self, max_nb_chunks: usize) { self.max_nb_chunks = Some(max_nb_chunks); - self } - pub fn max_memory(&mut self, max_memory: usize) -> &mut Self { + pub fn max_memory(&mut self, max_memory: usize) { self.max_memory = Some(max_memory); - self } - pub fn linked_hash_map_size(&mut self, linked_hash_map_size: usize) -> &mut Self { + pub fn linked_hash_map_size(&mut self, linked_hash_map_size: usize) { self.linked_hash_map_size = Some(linked_hash_map_size); - self } - pub fn chunk_compression_type(&mut self, chunk_compression_type: CompressionType) -> &mut Self { + pub fn chunk_compression_type(&mut self, chunk_compression_type: CompressionType) { self.chunk_compression_type = chunk_compression_type; - self } - pub fn chunk_compression_level(&mut self, chunk_compression_level: u32) -> &mut Self { + pub fn chunk_compression_level(&mut self, chunk_compression_level: u32) { self.chunk_compression_level = Some(chunk_compression_level); - self } - pub fn chunk_fusing_shrink_size(&mut self, chunk_fusing_shrink_size: u64) -> &mut Self { + pub fn chunk_fusing_shrink_size(&mut self, chunk_fusing_shrink_size: u64) { self.chunk_fusing_shrink_size = Some(chunk_fusing_shrink_size); - self } - pub fn indexing_jobs(&mut self, indexing_jobs: usize) -> &mut Self { + pub fn indexing_jobs(&mut self, indexing_jobs: usize) { self.indexing_jobs = Some(indexing_jobs); - self } pub fn clear_documents<'t, 'u, 'i>( @@ -96,30 +88,14 @@ impl UpdateBuilder { { let mut builder = IndexDocuments::new(wtxn, index); - if let Some(log_every_n) = self.log_every_n { - builder.log_every_n(log_every_n); - } - if let Some(max_nb_chunks) = self.max_nb_chunks { - builder.max_nb_chunks(max_nb_chunks); - } - if let Some(max_memory) = self.max_memory { - builder.max_memory(max_memory); - } - if let Some(linked_hash_map_size) = self.linked_hash_map_size { - builder.linked_hash_map_size(linked_hash_map_size); - } - - builder.chunk_compression_type(self.chunk_compression_type); - - if let Some(chunk_compression_level) = self.chunk_compression_level { - builder.chunk_compression_level(chunk_compression_level); - } - if let Some(chunk_fusing_shrink_size) = self.chunk_fusing_shrink_size { - builder.chunk_fusing_shrink_size(chunk_fusing_shrink_size); - } - if let Some(indexing_jobs) = self.indexing_jobs { - builder.indexing_jobs(indexing_jobs); - } + builder.log_every_n = self.log_every_n; + builder.max_nb_chunks = self.max_nb_chunks; + builder.max_memory = self.max_memory; + builder.linked_hash_map_size = self.linked_hash_map_size; + builder.chunk_compression_type = self.chunk_compression_type; + builder.chunk_compression_level = self.chunk_compression_level; + builder.chunk_fusing_shrink_size = self.chunk_fusing_shrink_size; + builder.indexing_jobs = self.indexing_jobs; builder }