Update milli/src/criterion.rs

Co-authored-by: Clément Renault <clement@meilisearch.com>
This commit is contained in:
Irevoire 2021-09-20 18:08:22 +02:00 committed by Tamo
parent f4b8e5675d
commit 0d104a0fce
No known key found for this signature in database
GPG Key ID: 20CD8020AFA88D69

View File

@ -76,23 +76,29 @@ impl FromStr for Member {
type Err = UserError; type Err = UserError;
fn from_str(text: &str) -> Result<Member, Self::Err> { fn from_str(text: &str) -> Result<Member, Self::Err> {
if let Some(point) = text.strip_prefix("_geoPoint(").and_then(|text| text.strip_suffix(")")) match text.strip_prefix("_geoPoint(").and_then(|text| text.strip_suffix(")")) {
{ Some(point) => {
let (lat, long) = point let (lat, long) = point
.split_once(',') .split_once(',')
.ok_or_else(|| UserError::InvalidRankingRuleName { name: text.to_string() }) .ok_or_else(|| UserError::InvalidRankingRuleName { name: text.to_string() })
.and_then(|(lat, long)| { .and_then(|(lat, long)| {
lat.trim() lat.trim()
.parse() .parse()
.and_then(|lat| long.trim().parse().map(|long| (lat, long))) .and_then(|lat| long.trim().parse().map(|long| (lat, long)))
.map_err(|_| UserError::InvalidRankingRuleName { name: text.to_string() }) .map_err(|_| UserError::InvalidRankingRuleName {
})?; name: text.to_string(),
Ok(Member::Geo([lat, long])) })
} else { })?;
if is_reserved_keyword(text) { Ok(Member::Geo([lat, long]))
return Err(UserError::InvalidReservedRankingRuleName { name: text.to_string() })?; }
None => {
if is_reserved_keyword(text) {
return Err(UserError::InvalidReservedRankingRuleName {
name: text.to_string(),
})?;
}
Ok(Member::Field(text.to_string()))
} }
Ok(Member::Field(text.to_string()))
} }
} }
} }