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 latticecancel: Cancellation reason and kind typesbudget: Budget type with product semiring semantics + min-plus curvespolicy: Policy trait for outcome aggregationsymbol: Symbol types for RaptorQ-based distributed layerresource: Resource limits and symbol buffer poolsrref: 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::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::TaskRecordandcrate::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§
- Decision
Id - 128-bit identifier linking a runtime decision to its EvidenceLedger entry.
- Policy
Id - Identifies a decision policy (e.g. scheduler, cancellation, budget).
- Schema
Version - Semantic version (major.minor.patch) with compatibility checking.
- TraceId
- 128-bit unique trace identifier.