Builder

Struct Builder 

Source
pub struct Builder { /* private fields */ }
Expand description

Deterministic state machine for graph construction.

The builder enforces all structural constraints:

  • No duplicate ID definitions
  • No forward references (DAG property)
  • Resource limits (max nodes, depth, inputs, outputs)

Implementations§

Source§

impl Builder

Source

pub fn new() -> Self

Create a new builder with default limits.

Source

pub fn with_limits(limits: Limits) -> Self

Create a new builder with custom limits.

Source

pub fn phase(&self) -> Phase

Get the current build phase.

Source

pub fn push(&mut self, token: Token) -> Result<(), BuildError>

Feed a single token to the builder.

Source

pub fn finish(self) -> Result<Graph, BuildError>

Finalize and return the graph.

§Errors

Returns an error if:

  • A node definition is incomplete
  • No outputs have been declared
Source

pub fn valid_next_tokens(&self) -> Vec<Token>

Returns the set of valid next tokens for LLM logit masking.

This is the critical interface for constraining LLM output. By masking all logits except those corresponding to valid tokens, the LLM is guaranteed to produce a syntactically correct circuit.

Trait Implementations§

Source§

impl Debug for Builder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Builder

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.