bus-core 0.1.1

Core traits and types for eventbus-rs with zero NATS dependencies
Documentation
use bus_core::{BusError, HandlerError};

#[test]
fn handler_error_display_transient() {
    let handler_error = HandlerError::Transient("db timeout".into());

    assert_eq!(handler_error.to_string(), "transient: db timeout");
}

#[test]
fn handler_error_display_permanent() {
    let handler_error = HandlerError::Permanent("invalid payload".into());

    assert_eq!(handler_error.to_string(), "permanent: invalid payload");
}

#[test]
fn bus_error_from_handler_error() {
    let handler_error = HandlerError::Transient("x".into());
    let bus_error: BusError = handler_error.into();

    assert!(matches!(bus_error, BusError::Handler(_)));
}

#[test]
fn bus_error_nats_unavailable_display() {
    let bus_error = BusError::NatsUnavailable;

    assert_eq!(bus_error.to_string(), "nats unavailable");
}

#[test]
fn bus_error_from_serde_json() {
    let json_error = serde_json::from_str::<serde_json::Value>("not json").unwrap_err();
    let bus_error: BusError = json_error.into();

    assert!(matches!(bus_error, BusError::Serde(_)));
}