nstreams-core 0.3.1

Generic versioned event stream handler with history replay
Documentation
use nstreams_core::event::{DeliveredEvent, StreamEvent};
use nstreams_core::request_id::new_request_id;

#[test]
fn delivered_event_carries_request_id_and_version() {
    let request_id = new_request_id();
    let event = StreamEvent {
        namespace: "internal.only".into(),
        version: 7,
        payload: br#"{"value":42}"#.to_vec(),
        filter_value: None,
    };

    let delivered = DeliveredEvent::from_stream_event(&request_id, &event);
    assert_eq!(delivered.request_id, request_id);
    assert_eq!(delivered.version, 7);

    let parsed: serde_json::Value = serde_json::from_slice(&delivered.payload).unwrap();
    assert_eq!(parsed["value"], 42);
}

#[test]
fn delivered_event_payload_roundtrip() {
    let delivered = DeliveredEvent {
        request_id: new_request_id(),
        version: 1,
        payload: br#"{"ok":true}"#.to_vec(),
    };

    let parsed: serde_json::Value = delivered.payload_json().unwrap();
    assert_eq!(parsed["ok"], true);
}