pub struct SpecSchema {
pub spec: String,
pub facts: IndexMap<String, (LemmaType, Option<LiteralValue>)>,
pub rules: IndexMap<String, LemmaType>,
pub meta: HashMap<String, MetaValue>,
}Expand description
A spec’s public interface: its facts (inputs) and rules (outputs) with full structured type information.
Built from an ExecutionPlan via ExecutionPlan::schema (all facts and
rules) or ExecutionPlan::schema_for_rules (scoped to specific rules and
only the facts they need).
Shared by the HTTP server, the CLI, the MCP server, WASM, and any other
consumer. Carries the real LemmaType and LiteralValue so consumers
can work at whatever fidelity they need — structured types for input forms,
or Display for plain text.
Fields§
§spec: StringSpec name
facts: IndexMap<String, (LemmaType, Option<LiteralValue>)>Facts (inputs) keyed by name: (type, optional default value)
rules: IndexMap<String, LemmaType>Rules (outputs) keyed by name, with their computed result types
meta: HashMap<String, MetaValue>Spec metadata
Trait Implementations§
Source§impl Clone for SpecSchema
impl Clone for SpecSchema
Source§fn clone(&self) -> SpecSchema
fn clone(&self) -> SpecSchema
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SpecSchema
impl Debug for SpecSchema
Source§impl Display for SpecSchema
impl Display for SpecSchema
Auto Trait Implementations§
impl Freeze for SpecSchema
impl RefUnwindSafe for SpecSchema
impl Send for SpecSchema
impl Sync for SpecSchema
impl Unpin for SpecSchema
impl UnsafeUnpin for SpecSchema
impl UnwindSafe for SpecSchema
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.