Crate rml_amf0 [] [src]

This crate provides functionality for serializing and deserializing data based on the Adobe AMF0 encoding specification located at https://wwwimages2.adobe.com/content/dam/acom/en/devnet/pdf/amf0-file-format-specification.pdf

Examples

use std::io::Cursor;
use std::collections::HashMap;
use rml_amf0::{Amf0Value, serialize, deserialize};

// Put some data into the Amf0Value types
let mut properties = HashMap::new();
properties.insert("app".to_string(), Amf0Value::Number(99.0));
properties.insert("second".to_string(), Amf0Value::Utf8String("test".to_string()));

let value1 = Amf0Value::Number(32.0);
let value2 = Amf0Value::Boolean(true);
let object = Amf0Value::Object(properties);
        
let input = vec![value1, object, value2];        

// Serialize the values into a vector of bytes
let serialized_data = serialize(&input).unwrap();

// Deserialize the vector of bytes back into Amf0Value types
let mut serialized_cursor = Cursor::new(serialized_data);
let results = deserialize(&mut serialized_cursor).unwrap();

assert_eq!(input, results);

Enums

Amf0DeserializationError

Errors that can occur during the deserialization process

Amf0SerializationError

Errors raised during to the serialization process

Amf0Value

An Enum representing the different supported types of Amf0 values

Functions

deserialize

Turns any readable byte stream and converts it into an array of AMF0 values

serialize

Serializes values into an amf0 encoded vector of bytes