feat(aura-core): typed construction-arg seam on PrimitiveBuilder
A second, closed construction channel beside the scalar bind seam (refs #271): ArgKind (Tz / TimeOfDay / Count — deliberately NOT ScalarKind, which stays invariant 4's streamed set), ArgSpec, ArgValue, ConstructionArg (verbatim strict-form strings, the id-bearing twin of BoundParam), ArgOpError, and an ArgsState on PrimitiveBuilder: pending(name, doc, specs, make) declares an arg-bearing recipe that is introspectable but not constructible; try_args validates strictly (exact IANA name, zero-padded HH:MM, plain positive decimal — the accepted form IS the canonical form, no normalization layer), then runs make and returns the configured builder. build() on a pending builder panics — the bind panic-contract twin; the data path always goes through try_args. chrono-tz enters aura-core for the typed Tz value (already a workspace dependency of four crates; typed values at the seam beat a validated-string re-parse split across two coupled sites). One test per ArgOpError variant plus strict-form refusal pins.
This commit is contained in:
Generated
+3
-2
@@ -160,6 +160,7 @@ dependencies = [
|
||||
"aura-core",
|
||||
"aura-engine",
|
||||
"aura-ingest",
|
||||
"aura-market",
|
||||
"aura-measurement",
|
||||
"aura-registry",
|
||||
"aura-research",
|
||||
@@ -167,6 +168,7 @@ dependencies = [
|
||||
"aura-std",
|
||||
"aura-strategy",
|
||||
"aura-vocabulary",
|
||||
"chrono-tz",
|
||||
"clap",
|
||||
"data-server",
|
||||
"libc",
|
||||
@@ -192,6 +194,7 @@ dependencies = [
|
||||
name = "aura-core"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"chrono-tz",
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
@@ -307,8 +310,6 @@ dependencies = [
|
||||
"aura-backtest",
|
||||
"aura-core",
|
||||
"aura-strategy",
|
||||
"chrono",
|
||||
"chrono-tz",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in New Issue
Block a user