necoherence/semantic_generation_runtime

Types

pub type CallbackFailure {
  CallbackFailure(condition: String)
  CallbackValue(failure: ValueFailure)
}

Constructors

  • CallbackFailure(condition: String)
  • CallbackValue(failure: ValueFailure)
pub opaque type Execution
pub type FailureCause {
  MissingComposition
  MissingInput(input: semantic_composition.InputId)
  InvalidInput(
    input: semantic_composition.InputId,
    failure: semantic_validation.ValidationFailure,
  )
  InputCoverage(condition: String)
  MissingProvider(function: semantic_composition.FunctionRef)
  ProviderCoverage(condition: String)
  ProviderEffect(function: semantic_composition.FunctionRef)
  ProviderFailed(
    function: semantic_composition.FunctionRef,
    failure: CallbackFailure,
  )
  InvalidOutput(
    function: semantic_composition.FunctionRef,
    port: semantic_composition.PortId,
    failure: semantic_validation.ValidationFailure,
  )
  OutcomeCoverage(
    function: semantic_composition.FunctionRef,
    condition: String,
  )
  BindingProjection(
    failure: semantic_validation.ProjectionValueFailure,
  )
  BindingValue(condition: String)
  GuardMeaning(
    obligations: List(semantic_types.SemanticObligation),
  )
  InvalidGuard(failure: semantic_types.ValueFailure)
  GuardCertificateMismatch(condition: String)
  MissingGuard(guard: semantic_composition.GuardId)
  MissingProducer(producer: semantic_composition.ProducerRef)
  MissingBranch(condition: String)
  InvalidTerminal(
    port: String,
    failure: semantic_validation.ValidationFailure,
  )
  ResourceCondition(condition: String)
  Network(failure: network_effect.NetworkFailure)
  NetworkTerminal(terminal: network_effect.NetworkTerminal)
}

Constructors

pub type OutcomeValues {
  OutcomeValues(
    outcome: semantic_composition.OutcomeId,
    values: List(
      #(
        semantic_composition.PortId,
        semantic_types.SlotValue(exact_json.JsonValue),
      ),
    ),
  )
}

Constructors

pub type PreparedAttempt {
  Ready(input: network_effect.AttemptInput)
  CompletedOutcome(outcome: OutcomeValues)
}

Constructors

pub type PreparedNetworkOwner {
  PreparedNetworkOwner(
    prepare: fn(
      List(
        #(
          semantic_composition.PortId,
          semantic_types.SlotValue(exact_json.JsonValue),
        ),
      ),
    ) -> Result(PreparedAttempt, CallbackFailure),
    decode: fn(network_effect.RawHttpResponse) -> Result(
      OutcomeValues,
      CallbackFailure,
    ),
    ports: network_host.AdapterPorts,
  )
}

Constructors

pub type Progress {
  Completed(
    terminal: TerminalValues,
    network: network_effect.NetworkState,
  )
  Pending(execution: Execution)
}

Constructors

pub type Provider {
  Provider(
    reference: semantic_composition.FunctionRef,
    implementation: ProviderImplementation,
  )
}

Constructors

pub type ProviderImplementation {
  Pure(
    callback: fn(
      List(
        #(
          semantic_composition.PortId,
          semantic_types.SlotValue(exact_json.JsonValue),
        ),
      ),
    ) -> Result(OutcomeValues, CallbackFailure),
  )
  Http(owner: NetworkOwner)
  PreparedHttp(owner: PreparedNetworkOwner)
}

Constructors

pub type RunFailure {
  RunFailure(
    cause: FailureCause,
    network: network_effect.NetworkState,
  )
}

Constructors

pub type SemanticRuntimeFailure {
  UnknownWrapper(name: String)
  WrongWrapperPayload(name: String)
  WrongValueKind(expected: String)
  ConflictingMember(key: String)
  MissingMember(key: String)
  InvalidMember(key: String)
  MissingTagModel
  NoBranchSelected
}

Constructors

  • UnknownWrapper(name: String)
  • WrongWrapperPayload(name: String)
  • WrongValueKind(expected: String)
  • ConflictingMember(key: String)
  • MissingMember(key: String)
  • InvalidMember(key: String)
  • MissingTagModel
  • NoBranchSelected
pub type ValueFailure {
  Constraint(failure: semantic_validation.ValidationFailure)
  Wire(
    reference: semantic_types.TypeRef,
    failure: semantic_generation_values.ValueCodecFailure,
  )
  Representation(
    reference: semantic_types.TypeRef,
    condition: String,
  )
}

Constructors

Values

pub fn execution_network(
  execution: Execution,
) -> network_effect.NetworkState
pub fn map_slot(
  value: semantic_types.SlotValue(a),
  convert: fn(a) -> Result(b, ValueFailure),
) -> Result(semantic_types.SlotValue(b), ValueFailure)
pub fn member_slot(
  members: List(#(String, exact_json.JsonValue)),
  name: String,
) -> semantic_types.SlotValue(exact_json.JsonValue)
pub fn ordered_members(
  members: List(#(String, exact_json.JsonValue)),
  member_order: List(String),
) -> List(#(String, exact_json.JsonValue))
pub fn resume(
  execution: Execution,
) -> Result(Progress, RunFailure)
pub fn select_branch(
  profile: semantic_types.SemanticProfile,
  branches: List(#(String, semantic_types.BranchSelector)),
  value: exact_json.JsonValue,
) -> Result(Int, SemanticRuntimeFailure)
pub fn slot_members(
  name: String,
  value: semantic_types.SlotValue(exact_json.JsonValue),
) -> List(#(String, exact_json.JsonValue))
pub fn tag_object(
  profile: semantic_types.SemanticProfile,
  reference: semantic_types.TypeRef,
  value: exact_json.JsonValue,
  tag: String,
) -> Result(exact_json.JsonValue, ValueFailure)
pub fn validate_value(
  graph: semantic_types.SemanticGraph,
  reference: semantic_types.TypeRef,
  value: exact_json.JsonValue,
) -> Result(Nil, ValueFailure)
pub fn with_member(
  key: String,
  text: String,
  value: exact_json.JsonValue,
) -> Result(exact_json.JsonValue, SemanticRuntimeFailure)
pub fn wrap_decode(
  profile: semantic_types.SemanticProfile,
  wrapper_name: String,
  value: exact_json.JsonValue,
) -> Result(exact_json.JsonValue, SemanticRuntimeFailure)
pub fn wrap_encode(
  profile: semantic_types.SemanticProfile,
  wrapper_name: String,
  payload: exact_json.JsonValue,
) -> Result(exact_json.JsonValue, SemanticRuntimeFailure)
✨ Search Document