diff --git a/rust/worker/src/segment/types.rs b/rust/worker/src/segment/types.rs index 5be51efbd5d..6a210c41131 100644 --- a/rust/worker/src/segment/types.rs +++ b/rust/worker/src/segment/types.rs @@ -1,8 +1,8 @@ use crate::errors::{ChromaError, ErrorCodes}; use crate::execution::data::data_chunk::Chunk; use crate::types::{ - DeletedMetadata, LogRecord, Metadata, MetadataValue, MetadataValueConversionError, Operation, - OperationRecord, UpdateMetadata, UpdateMetadataValue, + DeletedMetadata, LogRecord, Metadata, MetadataDelta, MetadataValue, + MetadataValueConversionError, Operation, OperationRecord, UpdateMetadata, UpdateMetadataValue, }; use async_trait::async_trait; use std::collections::{HashMap, HashSet}; @@ -168,25 +168,6 @@ pub(crate) struct MaterializedLogRecord<'referred_data> { pub(crate) final_embedding: Option<&'referred_data [f32]>, } -pub(crate) struct MetadataDelta<'referred_data> { - pub(crate) metadata_to_update: HashMap< - &'referred_data str, - (&'referred_data MetadataValue, &'referred_data MetadataValue), - >, - pub(crate) metadata_to_delete: HashMap<&'referred_data str, &'referred_data MetadataValue>, - pub(crate) metadata_to_insert: HashMap<&'referred_data str, &'referred_data MetadataValue>, -} - -impl<'referred_data> MetadataDelta<'referred_data> { - pub(crate) fn new() -> Self { - Self { - metadata_to_update: HashMap::new(), - metadata_to_delete: HashMap::new(), - metadata_to_insert: HashMap::new(), - } - } -} - impl<'referred_data> MaterializedLogRecord<'referred_data> { // Performs a deep copy of the document so only use it if really // needed. If you only need a reference then use merged_document_ref diff --git a/rust/worker/src/types/metadata.rs b/rust/worker/src/types/metadata.rs index 1956153add5..43f471b20fd 100644 --- a/rust/worker/src/types/metadata.rs +++ b/rust/worker/src/types/metadata.rs @@ -290,6 +290,25 @@ impl TryFrom for Metadata { } } +pub(crate) struct MetadataDelta<'referred_data> { + pub(crate) metadata_to_update: HashMap< + &'referred_data str, + (&'referred_data MetadataValue, &'referred_data MetadataValue), + >, + pub(crate) metadata_to_delete: HashMap<&'referred_data str, &'referred_data MetadataValue>, + pub(crate) metadata_to_insert: HashMap<&'referred_data str, &'referred_data MetadataValue>, +} + +impl<'referred_data> MetadataDelta<'referred_data> { + pub(crate) fn new() -> Self { + Self { + metadata_to_update: HashMap::new(), + metadata_to_delete: HashMap::new(), + metadata_to_insert: HashMap::new(), + } + } +} + /* =========================================== Metadata queries