Skip to main content

oxide_batch_core/
lib.rs

1//! Internal implementation crate for `OxideBatch`.
2//!
3//! **This crate is implementation detail. Use
4//! [`oxide-batch`](https://crates.io/crates/oxide-batch) instead.**
5//!
6//! It exists on crates.io only because the published `oxide-batch` facade
7//! depends on it. Its API carries no stability promise: items may be added,
8//! changed, or removed in any release, without a deprecation period. It has no
9//! supported-configuration matrix, no compatibility ledger row, and no
10//! independent release cadence.
11//!
12//! Everything here that `OxideBatch` supports is re-exported from `oxide-batch`
13//! under a stable path.
14//!
15//! The crate holds domain identities, typed job parameters, statuses and exit
16//! statuses, execution records and their lifecycle rules, bounded versioned
17//! execution-context and checkpoint state, chunk sizing and counting values,
18//! and restart-relevant definition identity with its canonical manifest
19//! encoding. It depends on no async runtime, database driver, command-line
20//! framework, telemetry SDK, broker client, or web framework, and on no other
21//! `OxideBatch` crate.
22
23#![forbid(unsafe_code)]
24
25mod chunk;
26mod component_state;
27mod definition;
28mod domain;
29mod fault;
30mod flow;
31mod state;
32
33pub use chunk::{ChunkCount, ChunkCounts, ChunkError, ChunkProgress, ChunkSize};
34pub use component_state::{
35    ChecksumAlgorithm, CodecId, CodecVersion, CodecVersionUpgrade, ComponentStateCodec,
36    ComponentStateEnvelope, ComponentStateError, ComponentStatePayload, ContentIdentity,
37    DefaultComponentCodec, ExternalStateError, ExternalStateReference, ExternalStateStore,
38    RestartabilityDeclaration, StateSensitivity, StreamStateContract,
39};
40pub use definition::{
41    ChunkComponentRevisions, ChunkDeliveryMode, ChunkRestartContract, ClassifierRevision,
42    ComponentRevision, ComponentStreamIdentity, DefinitionError, DefinitionIdentity,
43    DefinitionManifest, DefinitionRevision, DefinitionTokenKind, DefinitionUpgrade,
44    DefinitionUpgradeKey, InFlightPolicy, ManifestError, StepDefinitionUpgrade,
45};
46pub use definition::{
47    MANIFEST_FORMAT_FLOW, MANIFEST_FORMAT_LOCAL_SCALE, MANIFEST_FORMAT_ONE_STEP, MAX_NODES,
48    MAX_TRANSITIONS, check_manifest_format, validate_token,
49};
50pub use domain::{
51    BatchStatus, DomainError, ExecutionCounts, ExecutionMetadata, ExecutionTimestamps,
52    ExecutionVersion, ExitCode, ExitStatus, FailureCategory, FailureId, FailureSummary,
53    IdentifierKind, JobExecution, JobExecutionId, JobInstance, JobInstanceId, JobInstanceKey,
54    JobName, JobParameter, JobParameters, LifecycleError, LifecycleTransition, NameKind,
55    OperatorRequestId, ParameterName, ParameterRole, ParameterValue, ParameterValueKind,
56    RecoveryDecisionId, RetentionActionId, StepExecution, StepExecutionId, StepName,
57    StepPartitionId,
58};
59pub use fault::{
60    BackoffKind, BackoffPolicy, FaultAction, FaultClassifier, FaultDecision, FaultDescriptor,
61    FaultEvidence, FaultPhase, FaultPolicy, FaultPolicyError, FaultRule, RetryLimit, RetryOrdinal,
62    RetryStateLimit, RollbackDisposition, SkipCounts, SkipLimit,
63};
64pub use flow::{FlowTarget, MAX_PARTITIONS, NodeId, StartControls, StartLimit, TerminalKind};
65pub use state::{
66    Checkpoint, DurableStateKind, ExecutionContext, StateCodecError, StateError, StateLimits,
67    StateSchemaId, StateSchemaUpgrade, StateSchemaVersion, VersionedStateCodec,
68};