gpui_query/core/error/
serde.rs1use serde::{Deserialize, Deserializer, Serialize, Serializer};
4
5use super::types::{QueryError, QueryErrorKind};
6
7impl Serialize for QueryError {
8 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9 #[derive(Serialize)]
10 struct Helper<'a> {
11 kind: QueryErrorKind,
12 message: &'a str,
13 }
14 Helper {
15 kind: self.kind,
16 message: &self.message,
17 }
18 .serialize(serializer)
19 }
20}
21
22impl<'de> Deserialize<'de> for QueryError {
23 fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24 #[derive(Deserialize)]
25 struct Helper {
26 kind: QueryErrorKind,
27 message: String,
28 }
29 let h = Helper::deserialize(deserializer)?;
30 Ok(Self {
31 kind: h.kind,
32 message: h.message.into(),
33 })
34 }
35}