crates/nornir-warehouse-trait/Cargo.toml
# nornir-warehouse-trait — the backend-neutral Warehouse SEAM, extracted from
# nornir so consumers (dwarves, …) can depend on the trait + its POD arg/return
# types WITHOUT pulling nornir. Holds ONLY the durable abstraction: the
# `Warehouse` async trait, its plain-data arg/return structs (`BenchFilter`,
# `TablePreview`, `ColumnInfo`) and the pure knowledge MODEL PODs the trait's
# async surface names (`SymbolScan`/`SymbolRow`/… + `GitHeatScan`/`GitHeatRow`).
# The syn/walkdir/gix SCANNERS that BUILD these PODs stay in nornir and import
# them from here. nornir re-exports every type at its old module path, so the
# extraction is invisible to existing `crate::…` call sites.
[package]
name = "nornir-warehouse-trait"
version = "0.2.0"
edition = "2021"
description = "The backend-neutral nornir Warehouse trait + its POD arg/return types (BenchFilter, TablePreview, ColumnInfo) and the pure knowledge model structs its async surface names — lifted out of nornir so a consumer can depend on the seam without depending on nornir."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["warehouse", "iceberg", "arrow", "trait"]
categories = ["development-tools"]
[dependencies]
anyhow = "1"
async-trait = "0.1"
arrow = { version = "59", features = ["json", "prettyprint"] }
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1" }
serde = { version = "1", features = ["derive"] }
# arrow-58 Iceberg via skade's vendored, separately published fork
# (crates.io `iceberg-arrow59`, library name `iceberg`) — the SAME crate +
# version + path nornir opens, so the `iceberg::spec::Schema` on the trait is
# the identical type on both sides of the seam.
iceberg = { package = "iceberg-arrow59", version = "0.11.0", path = "../../../skade/vendor/iceberg-arrow59" }
# skade's backend-neutral scan predicate surface (`Scalar`/`ScanFilter`),
# re-exported below exactly as nornir/src/warehouse/mod.rs does.
skade = { version = ">=0.4.12", path = "../../../skade/skade", default-features = false }
# The bench run/result envelope — already an edda leaf; `BenchRun` is the trait's
# bench-history arg/return type.
nornir-bench = { version = "0.2.0", path = "../nornir-bench" }