(deserializer: D)
| 148 | |
| 149 | impl<'de> Deserialize<'de> for Value { |
| 150 | fn deserialize<D>(deserializer: D) -> std::result::Result<Value, D::Error> |
| 151 | where |
| 152 | D: Deserializer<'de>, |
| 153 | { |
| 154 | let versioned_value = VersionedData::deserialize(deserializer)?; |
| 155 | if !versioned_value.check_version(DATA_VERSION) { |
| 156 | Err(runtime_error!( |
| 157 | "Value version doesn't match the requirement" |
| 158 | )) |
| 159 | .map_err(serde::de::Error::custom) |
| 160 | } else { |
| 161 | let serializable_value = |
| 162 | serde_json::from_str::<SerializableValue>(versioned_value.get_data_string()) |
| 163 | .expect("Error during conversion from String to SerializableValue!"); |
| 164 | Value::from_serializable_value(serializable_value).map_err(serde::de::Error::custom) |
| 165 | } |
| 166 | } |
| 167 | } |
| 168 | |
| 169 | impl fmt::Display for Value { |
nothing calls this directly
no test coverage detected