Skip to content

Commit 8182012

Browse files
committed
Changes as per suggestion and cargo fmt executed
1 parent 3a0d5a1 commit 8182012

File tree

4 files changed

+22
-20
lines changed

4 files changed

+22
-20
lines changed

src/client.rs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use serde::de::Error as SerdeError;
12
use serde::{de::DeserializeOwned, Deserialize, Serialize};
23
use serde_json::{json, Value};
34
use std::{collections::HashMap, time::Duration};
@@ -81,32 +82,36 @@ impl<Http: HttpClient> Client<Http> {
8182
) -> Result<IndexesResults<Http>, Error> {
8283
let raw_indexes = value["results"]
8384
.as_array()
84-
.ok_or_else(|| Error::ParseStringError("Missing or invalid 'results' field".to_string()))?;
85-
85+
.ok_or_else(|| serde_json::Error::custom("Missing or invalid 'results' field"))
86+
.map_err(Error::SerdeParseError)?;
87+
8688
let limit = value["limit"]
8789
.as_u64()
88-
.ok_or_else(|| Error::ParseStringError("Missing or invalid 'limit' field".to_string()))? as u32;
89-
90+
.ok_or_else(|| serde_json::Error::custom("Missing or invalid 'limit' field"))
91+
.map_err(Error::SerdeParseError)? as u32;
92+
9093
let offset = value["offset"]
9194
.as_u64()
92-
.ok_or_else(|| Error::ParseStringError("Missing or invalid 'offset' field".to_string()))? as u32;
93-
95+
.ok_or_else(|| serde_json::Error::custom("Missing or invalid 'offset' field"))
96+
.map_err(Error::SerdeParseError)? as u32;
97+
9498
let total = value["total"]
9599
.as_u64()
96-
.ok_or_else(|| Error::ParseStringError("Missing or invalid 'total' field".to_string()))? as u32;
97-
100+
.ok_or_else(|| serde_json::Error::custom("Missing or invalid 'total' field"))
101+
.map_err(Error::SerdeParseError)? as u32;
102+
98103
let results = raw_indexes
99104
.iter()
100105
.map(|raw_index| Index::from_value(raw_index.clone(), self.clone()))
101106
.collect::<Result<_, _>>()?;
102-
107+
103108
let indexes_results = IndexesResults {
104109
limit,
105110
offset,
106111
total,
107112
results,
108113
};
109-
114+
110115
Ok(indexes_results)
111116
}
112117

src/errors.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,9 @@ pub enum Error {
1515
#[error(transparent)]
1616
MeilisearchCommunication(#[from] MeilisearchCommunicationError),
1717
/// The Meilisearch server returned an invalid JSON for a request.
18-
#[error("Error parsing response JSON: {}", .0)]
19-
ParseError(#[from] serde_json::Error),
18+
#[error(transparent)]
19+
SerdeParseError(#[from] serde_json::Error),
2020

21-
/// An error occurred while parsing the fields of the response JSON.
22-
#[error("Error parsing fields: {0}")]
23-
ParseStringError(String),
24-
2521
/// A timeout happened while waiting for an update to complete.
2622
#[error("A task did not succeed in time.")]
2723
Timeout,
@@ -390,7 +386,7 @@ mod test {
390386
"age": 43,
391387
}"#;
392388

393-
let error = Error::ParseError(serde_json::from_str::<String>(data).unwrap_err());
389+
let error = Error::SerdeParseError(serde_json::from_str::<String>(data).unwrap_err());
394390
assert_eq!(
395391
error.to_string(),
396392
"Error parsing response JSON: invalid type: map, expected a string at line 2 column 8"

src/indexes.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ impl<Http: HttpClient> Index<Http> {
102102
primaryKey: Option<String>,
103103
}
104104

105-
let i: IndexFromSerde = serde_json::from_value(raw_index).map_err(Error::ParseError)?;
105+
let i: IndexFromSerde =
106+
serde_json::from_value(raw_index).map_err(Error::SerdeParseError)?;
106107

107108
Ok(Index {
108109
uid: i.uid,

src/request.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ pub fn parse_response<Output: DeserializeOwned>(
117117
}
118118
Err(e) => {
119119
error!("Request succeeded but failed to parse response");
120-
Err(Error::ParseError(e))
120+
Err(Error::SerdeParseError(e))
121121
}
122122
};
123123
}
@@ -139,7 +139,7 @@ pub fn parse_response<Output: DeserializeOwned>(
139139
},
140140
));
141141
}
142-
Err(Error::ParseError(e))
142+
Err(Error::SerdeParseError(e))
143143
}
144144
}
145145
}

0 commit comments

Comments
 (0)