//! Streaming `json` file format.
//!
//! Reads a byte stream of one or more top-level JSON documents, walks
//! each document along a configured (possibly empty) JSONPath, and
//! emits Variant rows directly at scan time. The output schema is
//! always one non-nullable column `value: Variant`.
//!
//! What "Variant rows" means depends on the path:
//!
//! - empty / `$`-only path → one row per top-level document
//! - terminal `[*]` → one row per array element along the path
//! - terminal field → one row per document, holding the field's value
//!
//! See the plan at
//! `simba-cost-monitoring/plans/json-explode-format.md` for the full
//! rationale.
//!
//! The walk is driven by `rjiter::RJiter` running inside
//! `tokio::task::spawn_blocking`. An `actson` push-based walker was
//! evaluated alongside it and removed after benchmarking showed rjiter
//! was consistently faster on real workloads.

mod path;
mod plan;
mod reader;
mod rewrite;
mod walker;

pub use path::parse as parse_path;
pub use reader::{json_schema, JsonFormat};
pub use rewrite::JsonRewrite;
