aeo-graph-explorer 0.1.1

HTTP graph-query service over AEO Protocol crawls. Ingests aeo-crawler JSON Lines, builds an in-memory typed graph, exposes /nodes /neighbors /shortest-path /find-by-claim. Layer 5 of the AEO Reference Stack. Optional audit-stream-py integration via the `audit-stream` feature.
Documentation
//! Crate-wide error type.

use thiserror::Error;

/// Anything that can go wrong inside the crate.
#[derive(Debug, Error)]
pub enum GraphError {
    /// A JSONL line was not valid JSON.
    #[error("failed to parse JSONL line {line}: {source}")]
    JsonLine {
        /// 1-based line number for operator-friendly messages.
        line: usize,
        /// Underlying serde error.
        #[source]
        source: serde_json::Error,
    },

    /// A node referenced by an edge was not present in the input.
    #[error("unknown node id: {0}")]
    UnknownNode(String),

    /// A request asked about a node that isn't in the loaded graph.
    #[error("node not found in graph: {0}")]
    NotFound(String),

    /// `/find-by-claim` requires at least one of `predicate` or `value`.
    #[error("at least one of `predicate` or `value` must be supplied")]
    EmptyQuery,
}