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