pub struct ReferenceSubstrate { /* private fields */ }Implementations§
Source§impl ReferenceSubstrate
impl ReferenceSubstrate
pub fn new() -> Self
Sourcepub fn set_mock_embedder(&mut self)
pub fn set_mock_embedder(&mut self)
Install a deterministic MOCK embedder: a hashed bag of words over a small synonym table, so “record the vendor name” and “write down the supplier’s name” land close and “record the amount” does not. It exists so the T1 near-duplicate leg can be exercised with no model; it is not a semantic embedder and must never leave the test kit.
Sourcepub fn set_plan_replay(&mut self, report: Value)
pub fn set_plan_replay(&mut self, report: Value)
Pretend the runtime rehearsed every plan revision and reported this
(SubstrateRead::plan_replay). The reference substrate has no
runtime, so a test of the replay gate hands it the report.
pub fn set_capabilities(&mut self, caps: Capabilities)
Sourcepub fn register_fork(&mut self, entity: &str, heads: &[&str])
pub fn register_fork(&mut self, entity: &str, heads: &[&str])
Register a fork (turns on the forks capability).
Sourcepub fn set_telemetry(&mut self, view: TelemetryView)
pub fn set_telemetry(&mut self, view: TelemetryView)
Inject a telemetry snapshot (turns on the telemetry capability).
Sourcepub fn insert(&mut self, record: GrainRecord) -> String
pub fn insert(&mut self, record: GrainRecord) -> String
Insert a fully-formed grain record; returns its assigned hash.
Trait Implementations§
Source§impl Default for ReferenceSubstrate
impl Default for ReferenceSubstrate
Source§fn default() -> ReferenceSubstrate
fn default() -> ReferenceSubstrate
Source§impl OmsSubstrate for ReferenceSubstrate
impl OmsSubstrate for ReferenceSubstrate
Source§fn definition_inverse(&self, statement: &str) -> Result<Option<String>>
fn definition_inverse(&self, statement: &str) -> Result<Option<String>>
The statement restoring the CURRENT definition, or a DROP when there
is none — so an apply can always record an inverse and a ROLLBACK
always undoes something.
Source§fn put_grain(&mut self, spec: &GrainSpec) -> Result<String>
fn put_grain(&mut self, spec: &GrainSpec) -> Result<String>
Source§fn supersede(
&mut self,
target_hash: &str,
spec: &GrainSpec,
_justification: &str,
) -> Result<String>
fn supersede( &mut self, target_hash: &str, spec: &GrainSpec, _justification: &str, ) -> Result<String>
target_hash with a new grain carrying justification;
returns the new grain’s address. Atomic and distinct from put
(OMS §28.4).Source§fn retract(&mut self, hash: &str, reason: &str) -> Result<()>
fn retract(&mut self, hash: &str, reason: &str) -> Result<()>
verification_status = retracted) — the
inverse of an applied ADD, used by rollback. Not destructive (the grain
stays content-addressed; only the index marks it retracted). The
default reports it unsupported so substrates opt in.Source§fn execute_cal(&mut self, cal: &str) -> Result<Vec<Value>>
fn execute_cal(&mut self, cal: &str) -> Result<Vec<Value>>
evidence_query) and to apply proposal_cal. A
substrate MAY reject CAL it cannot run with Error::CalUnsupported.Source§fn validate_cal(&self, cal: &str) -> Result<()>
fn validate_cal(&self, cal: &str) -> Result<()>
Source§fn load_state(&self) -> Result<Value>
fn load_state(&self) -> Result<Value>
Value::Null when nothing has been stored yet.Source§fn store_state(&mut self, state: &Value) -> Result<()>
fn store_state(&mut self, state: &Value) -> Result<()>
Source§fn put_blob(&mut self, bytes: &[u8]) -> Result<String>
fn put_blob(&mut self, bytes: &[u8]) -> Result<String>
Source§impl SubstrateRead for ReferenceSubstrate
impl SubstrateRead for ReferenceSubstrate
Source§fn validate_plan(&self, workflow: &Value) -> Result<()>
fn validate_plan(&self, workflow: &Value) -> Result<()>
A MINIMAL plan check: every node named once, every edge between known
nodes, at least one node. Deliberately weaker than the Areev adapter’s,
which hands the body to the runtime’s own PlanGraph::build — this
crate carries no Areev dependency, and the seam’s contract is “refuse a
plan you cannot vouch for”, not “reimplement the scheduler”.
Source§fn tool_evalset(&self, tool: &str) -> Result<Option<String>>
fn tool_evalset(&self, tool: &str) -> Result<Option<String>>
Rule E1’s pin, from the tool’s own live definition grain.
Source§fn capabilities(&self) -> Capabilities
fn capabilities(&self) -> Capabilities
Source§fn embed(&self, text: &str) -> Result<Option<Vec<f32>>>
fn embed(&self, text: &str) -> Result<Option<Vec<f32>>>
Ok(None)
when no embedder is installed (the embeddings capability is off),
so the caller falls back to a lexical measure rather than guessing.
The default reports none; substrates opt in.Source§fn plan_replay(
&self,
_incumbent: &str,
_candidate: &Value,
) -> Result<Option<Value>>
fn plan_replay( &self, _incumbent: &str, _candidate: &Value, ) -> Result<Option<Value>>
incumbent_plan_hash — re-driven through the runtime’s
pure scheduler with every effect answered from the journal, nothing
dispatched, nothing written (areev run shadow --plan-file). The
report is the runtime’s ShadowPlanReport as JSON; the engine reads
totals.runs, no_worse, out_of_support_fraction and the per-run
rows. Ok(None) when the substrate has no runtime or no journaled
runs of that plan — the proposal is then simply unrehearsed, never
refused for it. The default reports none.Source§fn grains_of_type(
&self,
grain_type: &str,
namespace: Option<&str>,
opts: ReadOpts,
) -> Result<Vec<GrainRecord>>
fn grains_of_type( &self, grain_type: &str, namespace: Option<&str>, opts: ReadOpts, ) -> Result<Vec<GrainRecord>>
Source§fn grain(&self, hash: &str) -> Result<Option<GrainRecord>>
fn grain(&self, hash: &str) -> Result<Option<GrainRecord>>
Source§fn heads(&self, _namespace: Option<&str>) -> Result<Vec<HeadGroup>>
fn heads(&self, _namespace: Option<&str>) -> Result<Vec<HeadGroup>>
forks capability;
the default impl reports it missing so non-fork substrates degrade
cleanly rather than pretend.Source§fn telemetry(&self, _namespace: Option<&str>) -> Result<Option<TelemetryView>>
fn telemetry(&self, _namespace: Option<&str>) -> Result<Option<TelemetryView>>
telemetry capability; the default returns None so substrates without
a sidecar degrade cleanly. namespace scopes the snapshot when set.Source§fn address_of(&self, _spec: &GrainSpec) -> Result<Option<String>>
fn address_of(&self, _spec: &GrainSpec) -> Result<Option<String>>
put_grain(spec) WOULD assign, computed without
writing — what lets a rehearsal name the exact grain a live pass
would have stored. Ok(None) when the substrate cannot say (the
default); a replay then reports findings by dedup key and summary.