pub struct RawSourceContext { /* private fields */ }Expand description
A ContextLoader backed by a raw (pre-MDL) source. Carries no metrics/dimensions/models/lineage
— that is what a CONSTITUTIVE component’s output produces — but answers the two raw-shape
probes that make source_introspectable / raw_docs_readable evaluable instead of unanswerable.
Implementations§
Source§impl RawSourceContext
impl RawSourceContext
Sourcepub fn from_sources(sources: &RawSources) -> Self
pub fn from_sources(sources: &RawSources) -> Self
Build from read raw-source sources. On a schema parse failure, returns
RawSourceContext::unparseable rather than an error, per the sans-IO probe model.
Sourcepub fn unparseable() -> Self
pub fn unparseable() -> Self
A bound-but-broken raw source: schema.json failed to parse. is_parseable() is false,
so warble::compile’s coarse floor loud-fails before either precondition is even evaluated —
the probe values below are set to None (cannot answer over a source we couldn’t read) to be
honest rather than guess a Some(false) we didn’t actually establish.
Trait Implementations§
Source§impl ContextLoader for RawSourceContext
impl ContextLoader for RawSourceContext
Source§fn is_parseable(&self) -> bool
fn is_parseable(&self) -> bool
mdl_parseable /
wren_project_exists.Source§fn metrics(&self) -> &[MetricInfo]
fn metrics(&self) -> &[MetricInfo]
Source§fn dimensions(&self) -> &[DimensionInfo]
fn dimensions(&self) -> &[DimensionInfo]
Source§fn time_dimensions(&self) -> &[DimensionInfo]
fn time_dimensions(&self) -> &[DimensionInfo]
has_time_dimension.Source§fn lineage(&self) -> &LineageGraph
fn lineage(&self) -> &LineageGraph
lineage_resolvable + blast_radius).Source§fn source_introspectable(&self) -> Option<bool>
fn source_introspectable(&self) -> Option<bool>
source_introspectable). This inverts the consumer probes
above: a constitutive component’s input is a raw source that has no MDL yet — the component’s
output is the MDL. Some(true) = introspectable, Some(false) = a raw source is bound but
not introspectable, None = this Context cannot answer raw-shape at all (an MDL-only adapter),
which the compiler turns into an unanswerable loud-fail rather than guessing (the same D2
distinction as metric_additive). Defaults to None so existing MDL adapters are unaffected;
a raw-source adapter overrides it (schema introspection is borrowed — dlt/wren — never built).Source§fn raw_docs_readable(&self) -> Option<bool>
fn raw_docs_readable(&self) -> Option<bool>
raw_docs_readable). Same Some/None semantics as
Self::source_introspectable; defaults to None (MDL-only adapters cannot answer it).Source§fn parse_error(&self) -> Option<&str>
fn parse_error(&self) -> Option<&str>
Self::is_parseable is false and the
adapter has one to offer (e.g. a serde error from the bound project’s manifest). Message-only
enrichment for the mdl_parseable precondition failure — never used for control flow.
Defaults to None (no detail beyond the generic floor message); an adapter that keeps the
real error around overrides it.Source§fn lineage_diagnostics(&self) -> &[String]
fn lineage_diagnostics(&self) -> &[String]
Source§fn metric_additivity(&self, metric: &str) -> Option<Additivity>
fn metric_additivity(&self, metric: &str) -> Option<Additivity>
None when the metric is not declared or its
additivity is not expressible (⇒ can_answer("metric_additive") is false for it).