| 104 | |
| 105 | impl Serialize for ReturnValue { |
| 106 | fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> |
| 107 | where |
| 108 | S: serde::Serializer, |
| 109 | { |
| 110 | match self { |
| 111 | ReturnValue::Number(n) => serializer.serialize_f64(*n), |
| 112 | ReturnValue::Boolean(b) => serializer.serialize_bool(*b), |
| 113 | ReturnValue::String(s) => serializer.serialize_str(s), |
| 114 | ReturnValue::Array(vec) => { |
| 115 | let mut s = serializer.serialize_seq(Some(vec.len()))?; |
| 116 | for item in vec { |
| 117 | s.serialize_element(item)?; |
| 118 | } |
| 119 | s.end() |
| 120 | } |
| 121 | ReturnValue::Object(obj) | ReturnValue::Response(obj) => { |
| 122 | let mut s = serializer.serialize_map(Some(obj.len()))?; |
| 123 | for (key, value) in obj { |
| 124 | s.serialize_entry(key, value)?; |
| 125 | } |
| 126 | s.end() |
| 127 | } |
| 128 | ReturnValue::Agent(name) => serializer.serialize_str(name), |
| 129 | ReturnValue::Nil => serializer.serialize_none(), |
| 130 | } |
| 131 | } |
| 132 | } |
| 133 | |
| 134 | impl Display for ReturnValue { |