| 62 | R: Serialize + Debug, |
| 63 | { |
| 64 | fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> |
| 65 | where |
| 66 | S: Serializer, |
| 67 | { |
| 68 | match self { |
| 69 | JsonRpc::Notification(r) => { |
| 70 | let r = serde_json::to_value(r).unwrap(); |
| 71 | let mut s = serializer.serialize_struct("Notification", 3)?; |
| 72 | s.serialize_field("jsonrpc", "2.0")?; |
| 73 | s.serialize_field("method", &r["method"])?; |
| 74 | s.serialize_field("params", &r["params"])?; |
| 75 | s.end() |
| 76 | } |
| 77 | JsonRpc::Request(id, r) => { |
| 78 | let r = serde_json::to_value(r).unwrap(); |
| 79 | let mut s = serializer.serialize_struct("Request", 4)?; |
| 80 | s.serialize_field("jsonrpc", "2.0")?; |
| 81 | s.serialize_field("id", id)?; |
| 82 | s.serialize_field("method", &r["method"])?; |
| 83 | s.serialize_field("params", &r["params"])?; |
| 84 | s.end() |
| 85 | } |
| 86 | } |
| 87 | } |
| 88 | } |