diff --git a/meilisearch-core/benches/search_benchmark.rs b/meilisearch-core/benches/search_benchmark.rs index e25245468..73a39780d 100644 --- a/meilisearch-core/benches/search_benchmark.rs +++ b/meilisearch-core/benches/search_benchmark.rs @@ -39,7 +39,7 @@ fn prepare_database(path: &Path) -> Database { let file = File::open(path).unwrap(); let reader = BufReader::new(file); let settings: Settings = serde_json::from_reader(reader).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; db.update_write::<_, _, Box>(|writer| { diff --git a/meilisearch-core/examples/from_file.rs b/meilisearch-core/examples/from_file.rs index af41efb6c..a64e2b626 100644 --- a/meilisearch-core/examples/from_file.rs +++ b/meilisearch-core/examples/from_file.rs @@ -123,7 +123,7 @@ fn index_command(command: IndexCommand, database: Database) -> Result<(), Box, index: Index, ) -> MResult<()> { - let mut receiver = receiver.into_iter(); - while let Some(event) = receiver.next() { + for event in receiver { // if we receive a *MustClear* event, clear the index and break the loop if let UpdateEvent::MustClear = event { @@ -547,7 +546,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut update_writer = db.update_write_txn().unwrap(); @@ -610,7 +609,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut update_writer = db.update_write_txn().unwrap(); @@ -672,7 +671,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut update_writer = db.update_write_txn().unwrap(); @@ -727,7 +726,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut update_writer = db.update_write_txn().unwrap(); @@ -763,7 +762,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut writer = db.update_write_txn().unwrap(); @@ -829,7 +828,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut writer = db.update_write_txn().unwrap(); @@ -871,7 +870,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut writer = db.update_write_txn().unwrap(); @@ -951,7 +950,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut writer = db.update_write_txn().unwrap(); @@ -1090,7 +1089,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut writer = db.update_write_txn().unwrap(); @@ -1166,7 +1165,7 @@ mod tests { } "#; let settings: Settings = serde_json::from_str(data).unwrap(); - settings.into_update().unwrap() + settings.to_update().unwrap() }; let mut writer = db.update_write_txn().unwrap(); diff --git a/meilisearch-core/src/facets.rs b/meilisearch-core/src/facets.rs index 2f632dd94..1295224b7 100644 --- a/meilisearch-core/src/facets.rs +++ b/meilisearch-core/src/facets.rs @@ -70,7 +70,7 @@ impl FacetFilter { bad_value => return Err(FacetError::unexpected_token(&["Array", "String"], bad_value).into()), } } - return Ok(Self(filter)); + Ok(Self(filter)) } bad_value => Err(FacetError::unexpected_token(&["Array"], bad_value).into()), } diff --git a/meilisearch-core/src/filters/condition.rs b/meilisearch-core/src/filters/condition.rs index 0045e410f..d22f9d905 100644 --- a/meilisearch-core/src/filters/condition.rs +++ b/meilisearch-core/src/filters/condition.rs @@ -31,7 +31,7 @@ struct ConditionValue<'a> { impl<'a> ConditionValue<'a> { pub fn new(value: &Pair<'a, Rule>) -> Self { - let value = match value.as_rule() { + match value.as_rule() { Rule::string | Rule::word => { let string = value.as_str(); let boolean = match value.as_str() { @@ -43,12 +43,11 @@ impl<'a> ConditionValue<'a> { ConditionValue { string, boolean, number } }, _ => unreachable!(), - }; - value + } } pub fn as_str(&self) -> &str { - self.string.as_ref() + self.string } pub fn as_number(&self) -> Option<&Number> { @@ -73,7 +72,7 @@ fn get_field_value<'a>(schema: &Schema, pair: Pair<'a, Rule>) -> Result<(FieldId let key = items.next().unwrap(); let field = schema .id(key.as_str()) - .ok_or::>(PestError::new_from_span( + .ok_or_else(|| PestError::new_from_span( ErrorVariant::CustomError { message: format!( "attribute `{}` not found, available attributes are: {}", diff --git a/meilisearch-core/src/filters/mod.rs b/meilisearch-core/src/filters/mod.rs index cbff79f37..ea2090a09 100644 --- a/meilisearch-core/src/filters/mod.rs +++ b/meilisearch-core/src/filters/mod.rs @@ -26,7 +26,7 @@ pub enum Filter<'a> { impl<'a> Filter<'a> { pub fn parse(expr: &'a str, schema: &'a Schema) -> FilterResult<'a> { - let mut lexed = FilterParser::parse(Rule::prgm, expr.as_ref())?; + let mut lexed = FilterParser::parse(Rule::prgm, expr)?; Self::build(lexed.next().unwrap().into_inner(), schema) } diff --git a/meilisearch-core/src/number.rs b/meilisearch-core/src/number.rs index a9b2e606d..38f7ca975 100644 --- a/meilisearch-core/src/number.rs +++ b/meilisearch-core/src/number.rs @@ -6,7 +6,7 @@ use std::str::FromStr; use ordered_float::OrderedFloat; use serde::{Deserialize, Serialize}; -#[derive(Serialize, Deserialize, Debug, Copy, Clone, Hash)] +#[derive(Serialize, Deserialize, Debug, Copy, Clone)] pub enum Number { Unsigned(u64), Signed(i64), diff --git a/meilisearch-core/src/query_words_mapper.rs b/meilisearch-core/src/query_words_mapper.rs index b9816a347..b77ef52f4 100644 --- a/meilisearch-core/src/query_words_mapper.rs +++ b/meilisearch-core/src/query_words_mapper.rs @@ -53,7 +53,7 @@ impl QueryWordsMapper { } { - let replacement = replacement[common_left..replacement.len() - common_right].iter().cloned().collect(); + let replacement = replacement[common_left..replacement.len() - common_right].to_vec(); self.mappings.insert(id + common_left, (range.clone(), replacement)); } diff --git a/meilisearch-core/src/settings.rs b/meilisearch-core/src/settings.rs index 05e6117f0..157b88251 100644 --- a/meilisearch-core/src/settings.rs +++ b/meilisearch-core/src/settings.rs @@ -10,8 +10,7 @@ use self::RankingRule::*; pub const DEFAULT_RANKING_RULES: [RankingRule; 6] = [Typo, Words, Proximity, Attribute, WordsPosition, Exactness]; static RANKING_RULE_REGEX: Lazy = Lazy::new(|| { - let regex = regex::Regex::new(r"(asc|desc)\(([a-zA-Z0-9-_]*)\)").unwrap(); - regex + regex::Regex::new(r"(asc|desc)\(([a-zA-Z0-9-_]*)\)").unwrap() }); #[derive(Default, Clone, Serialize, Deserialize)] @@ -44,11 +43,11 @@ fn deserialize_some<'de, T, D>(deserializer: D) -> Result, D::Error> } impl Settings { - pub fn into_update(&self) -> Result { + pub fn to_update(&self) -> Result { let settings = self.clone(); let ranking_rules = match settings.ranking_rules { - Some(Some(rules)) => UpdateState::Update(RankingRule::from_iter(rules.iter())?), + Some(Some(rules)) => UpdateState::Update(RankingRule::try_from_iter(rules.iter())?), Some(None) => UpdateState::Clear, None => UpdateState::Nothing, }; @@ -152,7 +151,7 @@ impl RankingRule { } } - pub fn from_iter(rules: impl IntoIterator>) -> Result, RankingRuleConversionError> { + pub fn try_from_iter(rules: impl IntoIterator>) -> Result, RankingRuleConversionError> { rules.into_iter() .map(|s| RankingRule::from_str(s.as_ref())) .collect() diff --git a/meilisearch-core/src/store/main.rs b/meilisearch-core/src/store/main.rs index 9d5e95425..db3c61dcf 100644 --- a/meilisearch-core/src/store/main.rs +++ b/meilisearch-core/src/store/main.rs @@ -287,10 +287,10 @@ impl Main { } pub fn distinct_attribute(&self, reader: &heed::RoTxn) -> MResult> { - if let Some(value) = self.main.get::<_, Str, OwnedType>(reader, DISTINCT_ATTRIBUTE_KEY)? { - return Ok(Some(FieldId(value.to_owned()))) + match self.main.get::<_, Str, OwnedType>(reader, DISTINCT_ATTRIBUTE_KEY)? { + Some(value) => Ok(Some(FieldId(value.to_owned()))), + None => Ok(None), } - return Ok(None) } pub fn put_distinct_attribute(self, writer: &mut heed::RwTxn, value: FieldId) -> MResult<()> { diff --git a/meilisearch-error/src/lib.rs b/meilisearch-error/src/lib.rs index 368a24b2c..a6b4cbb3a 100644 --- a/meilisearch-error/src/lib.rs +++ b/meilisearch-error/src/lib.rs @@ -26,6 +26,7 @@ pub trait ErrorCode: std::error::Error { } } +#[allow(clippy::enum_variant_names)] enum ErrorType { InternalError, InvalidRequestError, diff --git a/meilisearch-http/src/routes/setting.rs b/meilisearch-http/src/routes/setting.rs index 299bbc757..3d22af194 100644 --- a/meilisearch-http/src/routes/setting.rs +++ b/meilisearch-http/src/routes/setting.rs @@ -45,7 +45,7 @@ async fn update_all( let update_id = data.db.update_write::<_, _, ResponseError>(|writer| { let settings = body .into_inner() - .into_update() + .to_update() .map_err(Error::bad_request)?; let update_id = index.settings_update(writer, settings)?; Ok(update_id) @@ -211,7 +211,7 @@ async fn update_rules( ..Settings::default() }; - let settings = settings.into_update().map_err(Error::bad_request)?; + let settings = settings.to_update().map_err(Error::bad_request)?; let update_id = data.db.update_write(|w| index.settings_update(w, settings))?; Ok(HttpResponse::Accepted().json(IndexUpdateResponse::with_id(update_id))) @@ -282,7 +282,7 @@ async fn update_distinct( ..Settings::default() }; - let settings = settings.into_update().map_err(Error::bad_request)?; + let settings = settings.to_update().map_err(Error::bad_request)?; let update_id = data.db.update_write(|w| index.settings_update(w, settings))?; Ok(HttpResponse::Accepted().json(IndexUpdateResponse::with_id(update_id))) @@ -350,7 +350,7 @@ async fn update_searchable( ..Settings::default() }; - let settings = settings.into_update().map_err(Error::bad_request)?; + let settings = settings.to_update().map_err(Error::bad_request)?; let update_id = data.db.update_write(|w| index.settings_update(w, settings))?; @@ -421,7 +421,7 @@ async fn update_displayed( ..Settings::default() }; - let settings = settings.into_update().map_err(Error::bad_request)?; + let settings = settings.to_update().map_err(Error::bad_request)?; let update_id = data.db.update_write(|w| index.settings_update(w, settings))?; Ok(HttpResponse::Accepted().json(IndexUpdateResponse::with_id(update_id))) @@ -490,7 +490,7 @@ async fn update_accept_new_fields( ..Settings::default() }; - let settings = settings.into_update().map_err(Error::bad_request)?; + let settings = settings.to_update().map_err(Error::bad_request)?; let update_id = data.db.update_write(|w| index.settings_update(w, settings))?; Ok(HttpResponse::Accepted().json(IndexUpdateResponse::with_id(update_id))) @@ -549,7 +549,7 @@ async fn update_attributes_for_faceting( ..Settings::default() }; - let settings = settings.into_update().map_err(Error::bad_request)?; + let settings = settings.to_update().map_err(Error::bad_request)?; let update_id = data.db.update_write(|w| index.settings_update(w, settings))?; Ok(HttpResponse::Accepted().json(IndexUpdateResponse::with_id(update_id))) diff --git a/meilisearch-schema/src/schema.rs b/meilisearch-schema/src/schema.rs index 7645ae50b..7579234dd 100644 --- a/meilisearch-schema/src/schema.rs +++ b/meilisearch-schema/src/schema.rs @@ -2,7 +2,7 @@ use crate::{FieldsMap, FieldId, SResult, Error, IndexedPos}; use serde::{Serialize, Deserialize}; use std::collections::{HashMap, HashSet}; -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize, Default)] pub struct Schema { fields_map: FieldsMap, @@ -19,13 +19,8 @@ pub struct Schema { impl Schema { pub fn new() -> Schema { Schema { - fields_map: FieldsMap::default(), - primary_key: None, - ranked: HashSet::new(), - displayed: HashSet::new(), - indexed: Vec::new(), - indexed_map: HashMap::new(), accept_new_fields: true, + ..Default::default() } }