mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-23 02:27:40 +08:00
Rename trait
This commit is contained in:
parent
264b10ec20
commit
378deb0bef
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user