Skip to main content

Module types

Module types 

Source
Expand description

Core types for the Asupersync runtime.

This module contains the fundamental types used throughout the runtime:

  • id: Identifier types (RegionId, TaskId, ObligationId, Time)
  • outcome: Four-valued outcome type with severity lattice
  • cancel: Cancellation reason and kind types
  • budget: Budget type with product semiring semantics + min-plus curves
  • policy: Policy trait for outcome aggregation
  • symbol: Symbol types for RaptorQ-based distributed layer
  • resource: Resource limits and symbol buffer pools
  • rref: Region-owned reference for Send tasks

§Outcomes and budgets in a runtime context

Outcome keeps cancellation and panic distinct from ordinary errors. Budget::meet computes the tighter bounds used by nested work.

use asupersync::{Budget, Cx, Outcome, main};
use asupersync::types::Time;

#[main]
async fn main(cx: &Cx) {
    cx.checkpoint().expect("example starts active");

    let mapped: Outcome<u8, &str> = Outcome::Ok(20_u8).map(|value| value + 1);
    assert!(matches!(mapped, Outcome::Ok(21)));

    let error: Outcome<u8, &str> = Outcome::Err("domain failure");
    assert!(matches!(error.map(|value| value + 1), Outcome::Err("domain failure")));

    let parent = Budget::with_deadline_at_secs(30).with_cost_quota(10);
    let child = Budget::with_deadline_at_secs(5).with_cost_quota(3);
    let effective = parent.meet(child);
    assert_eq!(effective.deadline, Some(Time::from_secs(5)));

    let mut exhausted = effective;
    assert!(exhausted.consume_cost(3));
    assert!(!exhausted.consume_cost(1));
}

Re-exports§

pub use budget::Budget;
pub use budget::CapabilityBudget;
pub use budget::CapabilityBudgetDimension;
pub use budget::CapabilityBudgetRefusal;
pub use budget::CapabilityBudgetRequirements;
pub use budget::CurveBudget;
pub use budget::CurveError;
pub use budget::MinPlusCurve;
pub use budget::RemainingBudget;
pub use budget::backlog_bound;
pub use budget::delay_bound;
pub use builder::BuildError;
pub use builder::BuildResult;
pub use cancel::CancelAttributionConfig;
pub use cancel::CancelKind;
pub use cancel::CancelPhase;
pub use cancel::CancelReason;
pub use cancel::CancelWitness;
pub use cancel::CancelWitnessError;
pub use id::ObligationId;
pub use id::RegionId;
pub use id::TaskId;
pub use id::Time;
pub use outcome::Outcome;
pub use outcome::OutcomeError;
pub use outcome::PanicPayload;
pub use outcome::Severity;
pub use outcome::join_outcomes;
pub use policy::Policy;
pub use pressure::SystemPressure;
pub use rref::RRef;
pub use rref::RRefAccess;
pub use rref::RRefAccessWitness;
pub use rref::RRefError;
pub use slo_policy::SLO_POLICY_BUNDLE_SCHEMA_VERSION;
pub use slo_policy::SLO_POLICY_COMPILER_SCHEMA_VERSION;
pub use slo_policy::SLO_POLICY_PROOF_REPORT_SCHEMA_VERSION;
pub use slo_policy::SLO_POLICY_RUNTIME_APPLICATION_SCHEMA_VERSION;
pub use slo_policy::SloCompiledAdmission;
pub use slo_policy::SloCompiledAdmissionDecision;
pub use slo_policy::SloCompiledBrownoutStage;
pub use slo_policy::SloCompiledBrownoutStep;
pub use slo_policy::SloCompiledBudget;
pub use slo_policy::SloCompiledNoWinReceipt;
pub use slo_policy::SloCompiledPolicy;
pub use slo_policy::SloCompiledPolicyProvenance;
pub use slo_policy::SloCompiledPolicyStatus;
pub use slo_policy::SloLatencyObjective;
pub use slo_policy::SloLatencyUnit;
pub use slo_policy::SloNoWinFallback;
pub use slo_policy::SloOptionalWorkClass;
pub use slo_policy::SloPolicyBundle;
pub use slo_policy::SloPolicyCapacityEvidence;
pub use slo_policy::SloPolicyCompilerBlocker;
pub use slo_policy::SloPolicyCompilerBlockerKind;
pub use slo_policy::SloPolicyProvenance;
pub use slo_policy::SloPolicyRedaction;
pub use slo_policy::SloPolicyValidationIssue;
pub use slo_policy::SloPolicyValidationIssueKind;
pub use slo_policy::SloPolicyValidationReport;
pub use slo_policy::SloProofCommand;
pub use slo_policy::SloProofNoWinReceipt;
pub use slo_policy::SloProofReport;
pub use slo_policy::SloProofReportIssue;
pub use slo_policy::SloProofReportIssueKind;
pub use slo_policy::SloProofReportProvenance;
pub use slo_policy::SloProofReportRow;
pub use slo_policy::SloProofReportStatus;
pub use slo_policy::SloProofReportStatusCounts;
pub use slo_policy::SloProofReportValidation;
pub use slo_policy::SloResourcePressureThresholds;
pub use slo_policy::SloRuntimeAdmissionIssueKind;
pub use slo_policy::SloRuntimeAdmissionOutcome;
pub use slo_policy::SloRuntimeAdmissionRequest;
pub use slo_policy::SloRuntimeAdmissionStatus;
pub use slo_policy::SloRuntimeOptionalWorkApplication;
pub use slo_policy::SloRuntimeOptionalWorkDecision;
pub use slo_policy::SloRuntimePolicyApplication;
pub use slo_policy::SloRuntimePolicyApplicationIssue;
pub use slo_policy::SloRuntimePolicyApplicationIssueKind;
pub use slo_policy::SloRuntimePolicyApplicationProvenance;
pub use slo_policy::SloRuntimePolicyApplicationValidation;
pub use slo_policy::SloRuntimePolicyDecision;
pub use slo_policy::SloWorkloadClass;
pub use slo_policy::slo_proof_report_status_counts;
pub use slo_policy::validate_slo_policy_bundle_json;
pub use slo_policy::validate_slo_proof_report_json;
pub use slo_policy::validate_slo_runtime_policy_application_json;
pub use symbol::DEFAULT_SYMBOL_SIZE;
pub use symbol::ObjectId;
pub use symbol::ObjectParams;
pub use symbol::Symbol;
pub use symbol::SymbolId;
pub use symbol::SymbolKind;
pub use symbol_set::BlockProgress;
pub use symbol_set::ConcurrentSymbolSet;
pub use symbol_set::InsertResult;
pub use symbol_set::SymbolSet;
pub use symbol_set::ThresholdConfig;
pub use task_context::CheckpointHistoryEntry;
pub use task_context::CheckpointState;
pub use task_context::CxInner;
pub use task_context::MAX_MASK_DEPTH;
pub use typed_symbol::DeserializationError;
pub use typed_symbol::Deserializer;
pub use typed_symbol::LegacyTypedSymbolIdentity;
pub use typed_symbol::SerdeCodec;
pub use typed_symbol::SerializationError;
pub use typed_symbol::SerializationFormat;
pub use typed_symbol::Serializer;
pub use typed_symbol::TYPED_SYMBOL_HEADER_LEN;
pub use typed_symbol::TYPED_SYMBOL_MAGIC;
pub use typed_symbol::TYPED_SYMBOL_VERSION;
pub use typed_symbol::TypeDescriptor;
pub use typed_symbol::TypeMismatchError;
pub use typed_symbol::TypeRegistry;
pub use typed_symbol::TypedDecoder;
pub use typed_symbol::TypedEncoder;
pub use typed_symbol::TypedSymbol;
pub use wasm_abi::NextjsAntiPattern;
pub use wasm_abi::NextjsBootstrapPhase;
pub use wasm_abi::NextjsBootstrapState;
pub use wasm_abi::NextjsBootstrapTransitionError;
pub use wasm_abi::NextjsBootstrapTransitionRecord;
pub use wasm_abi::NextjsBootstrapTrigger;
pub use wasm_abi::NextjsBoundaryMode;
pub use wasm_abi::NextjsCapability;
pub use wasm_abi::NextjsComponentPlacement;
pub use wasm_abi::NextjsIntegrationSnapshot;
pub use wasm_abi::NextjsNavigationType;
pub use wasm_abi::NextjsRenderEnvironment;
pub use wasm_abi::NextjsRuntimeFallback;
pub use wasm_abi::ProgressiveLoadSlot;
pub use wasm_abi::ProgressiveLoadSnapshot;
pub use wasm_abi::RacerSnapshot;
pub use wasm_abi::RacerState;
pub use wasm_abi::ReactHookDiagnosticEvent;
pub use wasm_abi::ReactHookKind;
pub use wasm_abi::ReactHookPhase;
pub use wasm_abi::ReactHookTransitionError;
pub use wasm_abi::ReactProviderConfig;
pub use wasm_abi::ReactProviderPhase;
pub use wasm_abi::ReactProviderSnapshot;
pub use wasm_abi::ReactProviderState;
pub use wasm_abi::ReactProviderTransitionError;
pub use wasm_abi::SuspenseBoundaryState;
pub use wasm_abi::SuspenseDiagnosticEvent;
pub use wasm_abi::SuspenseTaskConfig;
pub use wasm_abi::SuspenseTaskSnapshot;
pub use wasm_abi::TaskDepChangePolicy;
pub use wasm_abi::TransitionTaskState;
pub use wasm_abi::UseCancellationConfig;
pub use wasm_abi::UseCancellationSnapshot;
pub use wasm_abi::UseRaceConfig;
pub use wasm_abi::UseRaceSnapshot;
pub use wasm_abi::UseScopeConfig;
pub use wasm_abi::UseScopeSnapshot;
pub use wasm_abi::UseTaskConfig;
pub use wasm_abi::UseTaskSnapshot;
pub use wasm_abi::UseTaskStatus;
pub use wasm_abi::WASM_ABI_MAJOR_VERSION;
pub use wasm_abi::WASM_ABI_MINOR_VERSION;
pub use wasm_abi::WASM_ABI_SIGNATURE_FINGERPRINT_V1;
pub use wasm_abi::WASM_ABI_SIGNATURES_V1;
pub use wasm_abi::WasmAbiBoundaryEvent;
pub use wasm_abi::WasmAbiCancellation;
pub use wasm_abi::WasmAbiChangeClass;
pub use wasm_abi::WasmAbiCompatibilityDecision;
pub use wasm_abi::WasmAbiErrorCode;
pub use wasm_abi::WasmAbiFailure;
pub use wasm_abi::WasmAbiOutcomeEnvelope;
pub use wasm_abi::WasmAbiPayloadShape;
pub use wasm_abi::WasmAbiRecoverability;
pub use wasm_abi::WasmAbiSignature;
pub use wasm_abi::WasmAbiSymbol;
pub use wasm_abi::WasmAbiValue;
pub use wasm_abi::WasmAbiVersion;
pub use wasm_abi::WasmAbiVersionBump;
pub use wasm_abi::WasmAbortInteropSnapshot;
pub use wasm_abi::WasmAbortInteropUpdate;
pub use wasm_abi::WasmAbortPropagationMode;
pub use wasm_abi::WasmBoundaryEventLog;
pub use wasm_abi::WasmBoundaryState;
pub use wasm_abi::WasmBoundaryTransitionError;
pub use wasm_abi::WasmDispatchError;
pub use wasm_abi::WasmDispatcherDiagnostics;
pub use wasm_abi::WasmExportDispatcher;
pub use wasm_abi::WasmExportResult;
pub use wasm_abi::WasmFetchBuilder;
pub use wasm_abi::WasmFetchRequest;
pub use wasm_abi::WasmHandleKind;
pub use wasm_abi::WasmHandleRef;
pub use wasm_abi::WasmOutcomeExt;
pub use wasm_abi::WasmScopeEnterBuilder;
pub use wasm_abi::WasmScopeEnterRequest;
pub use wasm_abi::WasmTaskCancelRequest;
pub use wasm_abi::WasmTaskSpawnBuilder;
pub use wasm_abi::WasmTaskSpawnRequest;
pub use wasm_abi::apply_abort_signal_event;
pub use wasm_abi::apply_runtime_cancel_phase_event;
pub use wasm_abi::classify_wasm_abi_compatibility;
pub use wasm_abi::is_capability_available;
pub use wasm_abi::is_valid_bootstrap_transition;
pub use wasm_abi::is_valid_hook_transition;
pub use wasm_abi::is_valid_provider_transition;
pub use wasm_abi::is_valid_wasm_boundary_transition;
pub use wasm_abi::outcome_to_error_boundary_action;
pub use wasm_abi::outcome_to_suspense_state;
pub use wasm_abi::outcome_to_transition_state;
pub use wasm_abi::required_wasm_abi_bump;
pub use wasm_abi::validate_bootstrap_transition;
pub use wasm_abi::validate_hook_transition;
pub use wasm_abi::validate_provider_transition;
pub use wasm_abi::validate_wasm_boundary_transition;
pub use wasm_abi::wasm_abi_signature_fingerprint;
pub use wasm_abi::wasm_boundary_state_for_cancel_phase;

Modules§

budget
Budget type with product semiring semantics.
builder
Builder API types and validation for Asupersync.
cancel
Cancellation reason and kind types.
id
Identifier types for runtime entities.
outcome
Four-valued outcome type with severity lattice.
policy
Policy trait for region outcome aggregation.
pressure
System pressure measurement for compute budget propagation.
resource
Resource management primitives for symbol-heavy workloads.
rref
Region-owned reference type.
slo_policy
Operator SLO policy bundle schema and fail-closed validation.
symbol
Symbol types for the RaptorQ-based distributed layer.
symbol_set
Symbol collection and threshold tracking.
task_context
Internal task context state shared between crate::record::TaskRecord and crate::cx::Cx.
typed_symbol
Typed symbol wrappers for encoding and decoding Rust types.
wasm_abi
Versioned WASM ABI contract for JS/TS boundary integration.

Structs§

DecisionId
128-bit identifier linking a runtime decision to its EvidenceLedger entry.
PolicyId
Identifies a decision policy (e.g. scheduler, cancellation, budget).
SchemaVersion
Semantic version (major.minor.patch) with compatibility checking.
TraceId
128-bit unique trace identifier.