Rename trait

This commit is contained in:
Louis Dureuil 2023-11-13 13:37:58 +01:00
parent 264b10ec20
commit 378deb0bef
No known key found for this signature in database
3 changed files with 10 additions and 8 deletions

View File

@ -12,9 +12,7 @@ use bimap::BiHashMap;
pub use builder::DocumentsBatchBuilder; pub use builder::DocumentsBatchBuilder;
pub use enriched::{EnrichedDocument, EnrichedDocumentsBatchCursor, EnrichedDocumentsBatchReader}; pub use enriched::{EnrichedDocument, EnrichedDocumentsBatchCursor, EnrichedDocumentsBatchReader};
use obkv::KvReader; use obkv::KvReader;
pub use primary_key::{ pub use primary_key::{DocumentIdExtractionError, FieldIdMapper, PrimaryKey, DEFAULT_PRIMARY_KEY};
DocumentIdExtractionError, FieldDistribution, PrimaryKey, DEFAULT_PRIMARY_KEY,
};
pub use reader::{DocumentsBatchCursor, DocumentsBatchCursorError, DocumentsBatchReader}; pub use reader::{DocumentsBatchCursor, DocumentsBatchCursorError, DocumentsBatchReader};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@ -91,7 +89,7 @@ impl DocumentsBatchIndex {
} }
} }
impl FieldDistribution for DocumentsBatchIndex { impl FieldIdMapper for DocumentsBatchIndex {
fn id(&self, name: &str) -> Option<FieldId> { fn id(&self, name: &str) -> Option<FieldId> {
self.id(name) self.id(name)
} }

View File

@ -11,7 +11,11 @@ const PRIMARY_KEY_SPLIT_SYMBOL: char = '.';
/// The default primary that is used when not specified. /// The default primary that is used when not specified.
pub const DEFAULT_PRIMARY_KEY: &str = "id"; pub const DEFAULT_PRIMARY_KEY: &str = "id";
pub trait FieldDistribution { /// Trait for objects that can map the name of a field to its [`FieldId`].
pub trait FieldIdMapper {
/// Attempts to map the passed name to its [`FieldId`].
///
/// `None` if the field with this name was not found.
fn id(&self, name: &str) -> Option<FieldId>; fn id(&self, name: &str) -> Option<FieldId>;
} }
@ -30,7 +34,7 @@ pub enum DocumentIdExtractionError {
} }
impl<'a> PrimaryKey<'a> { impl<'a> PrimaryKey<'a> {
pub fn new(path: &'a str, fields: &impl FieldDistribution) -> Option<Self> { pub fn new(path: &'a str, fields: &impl FieldIdMapper) -> Option<Self> {
Some(if path.contains(PRIMARY_KEY_SPLIT_SYMBOL) { Some(if path.contains(PRIMARY_KEY_SPLIT_SYMBOL) {
Self::Nested { name: path } Self::Nested { name: path }
} else { } else {
@ -49,7 +53,7 @@ impl<'a> PrimaryKey<'a> {
pub fn document_id( pub fn document_id(
&self, &self,
document: &obkv::KvReader<FieldId>, document: &obkv::KvReader<FieldId>,
fields: &impl FieldDistribution, fields: &impl FieldIdMapper,
) -> Result<StdResult<String, DocumentIdExtractionError>> { ) -> Result<StdResult<String, DocumentIdExtractionError>> {
match self { match self {
PrimaryKey::Flat { name: _, field_id } => match document.get(*field_id) { PrimaryKey::Flat { name: _, field_id } => match document.get(*field_id) {

View File

@ -81,7 +81,7 @@ impl Default for FieldsIdsMap {
} }
} }
impl crate::documents::FieldDistribution for FieldsIdsMap { impl crate::documents::FieldIdMapper for FieldsIdsMap {
fn id(&self, name: &str) -> Option<FieldId> { fn id(&self, name: &str) -> Option<FieldId> {
self.id(name) self.id(name)
} }