MCPcopy Create free account
hub / github.com/csskit/csskit / serialize

Method serialize

crates/csskit_lsp/src/jsonrpc/response.rs:25–51  ·  view source on GitHub ↗
(&self, serializer: S)

Source from the content-addressed store, hash-verified

23
24impl Serialize for Response {
25 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
26 where
27 S: serde::Serializer,
28 {
29 #[derive(Serialize)]
30 struct Res<'a> {
31 id: &'a Id,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 result: Option<&'a Value>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 error: Option<Value>,
36 }
37 if let Response::Ok(id, value) = self {
38 Res { id, result: Some(value), error: None }.serialize(serializer)
39 } else if let Response::Err(id, code, message, value) = self {
40 Res {
41 id,
42 result: None,
43 error: Some(json!({
44 "code": code, "message": message, "data": value
45 })),
46 }
47 .serialize(serializer)
48 } else {
49 unreachable!()
50 }
51 }
52}
53
54impl<'de> Deserialize<'de> for Response {

Callers 2

lexFunction · 0.45
parseFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected