pub struct DataEntry {
pub lemma_type: LemmaType,
pub default: Option<LiteralValue>,
}Expand description
A spec’s public interface: its data (inputs) and rules (outputs) with full structured type information.
Built from an ExecutionPlan via ExecutionPlan::schema (all data and
rules) or ExecutionPlan::schema_for_rules (scoped to specific rules and
only the data 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.
This is the IO contract consumers can rely on:
data: required/provided inputs with full type constraintsrules: produced outputs with full result types
For cross-spec composition, planning validates that referenced specs satisfy
this contract. Plan hashes are complementary: they lock full behavior.
One data input in a SpecSchema.
A named struct instead of a (type, default) tuple so JSON-native consumers
(TypeScript, Python, …) get stable field names. default is None unless
the spec (or a typedef it references) declared one.
Fields§
§lemma_type: LemmaType§default: Option<LiteralValue>Trait Implementations§
Source§impl<'de> Deserialize<'de> for DataEntry
impl<'de> Deserialize<'de> for DataEntry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for DataEntry
Auto Trait Implementations§
impl Freeze for DataEntry
impl RefUnwindSafe for DataEntry
impl Send for DataEntry
impl Sync for DataEntry
impl Unpin for DataEntry
impl UnsafeUnpin for DataEntry
impl UnwindSafe for DataEntry
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
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>
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>
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 more