(full_app_data: &[u8])
| 296 | } |
| 297 | |
| 298 | pub fn parse(full_app_data: &[u8]) -> Result<ProtocolAppData, serde_json::Error> { |
| 299 | let root = serde_json::from_slice::<Root>(full_app_data)?; |
| 300 | let parsed = root |
| 301 | .metadata |
| 302 | .or_else(|| root.backend.map(ProtocolAppData::from)) |
| 303 | // If the key doesn't exist, default. Makes life easier for API |
| 304 | // consumers, who don't care about protocol app data. |
| 305 | .unwrap_or_default(); |
| 306 | Ok(parsed) |
| 307 | } |
| 308 | |
| 309 | /// Extracts the `appCode` from a full app-data document, if present. |
| 310 | /// |
no outgoing calls