error-path 0.1.0

Attach stable, structured error paths to Result-based Rust errors with lightweight adapters.
Documentation
use error_path::{path_delimiter, set_path_delimiter, ErrorPath, SetPathDelimiterError};

#[test]
fn configures_global_path_delimiter_once() {
    set_path_delimiter("::").unwrap();
    assert_eq!(path_delimiter(), "::");

    let mut err = ErrorPath::from_path("login::api");
    err.prepend_path("service::gateway");
    err.push("http.0405");
    assert_eq!(err.to_string(), "service::gateway::login::api::http.0405");
    assert_eq!(
        err.to_string_with("/"),
        "service/gateway/login/api/http.0405"
    );

    assert_eq!(
        set_path_delimiter("/"),
        Err(SetPathDelimiterError::AlreadySet)
    );
}

#[test]
fn rejects_empty_delimiter() {
    assert_eq!(set_path_delimiter(""), Err(SetPathDelimiterError::Empty));
}