durable-actors 0.4.0

Standalone regional durable-actors control plane, host, and durability runtime
Documentation
use anyhow::Result;
use durable_actors::state_log::StateSnapshot;
use serde_json::json;

#[test]
fn immutable_snapshot_round_trips_state_and_result() -> Result<()> {
    let snapshot = StateSnapshot::new(7, 3, "request-7".into(), json!({ "count": 7 }), json!(7))?;

    let decoded = StateSnapshot::decode(&snapshot.encode()?)?;

    assert_eq!(decoded.state_version, 7);
    assert_eq!(decoded.owner_epoch, 3);
    assert_eq!(decoded.request_id, "request-7");
    assert_eq!(
        serde_json::from_str::<serde_json::Value>(decoded.state.get())?,
        json!({"count": 7})
    );
    assert_eq!(decoded.result, json!(7));
    Ok(())
}