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 definition;
27mod domain;
28mod fault;
29mod flow;
30mod state;
31
32pub use chunk::{ChunkCount, ChunkCounts, ChunkError, ChunkProgress, ChunkSize};
33pub use definition::{
34    ChunkComponentRevisions, ChunkDeliveryMode, ChunkRestartContract, ClassifierRevision,
35    ComponentRevision, DefinitionError, DefinitionIdentity, DefinitionManifest, DefinitionRevision,
36    DefinitionTokenKind, DefinitionUpgrade, DefinitionUpgradeKey, InFlightPolicy, ManifestError,
37    StepDefinitionUpgrade,
38};
39pub use definition::{
40    MANIFEST_FORMAT_FLOW, MANIFEST_FORMAT_LOCAL_SCALE, MANIFEST_FORMAT_ONE_STEP, MAX_NODES,
41    MAX_TRANSITIONS, check_manifest_format, validate_token,
42};
43pub use domain::{
44    BatchStatus, DomainError, ExecutionCounts, ExecutionMetadata, ExecutionTimestamps,
45    ExecutionVersion, ExitCode, ExitStatus, FailureCategory, FailureId, FailureSummary,
46    IdentifierKind, JobExecution, JobExecutionId, JobInstance, JobInstanceId, JobInstanceKey,
47    JobName, JobParameter, JobParameters, LifecycleError, LifecycleTransition, NameKind,
48    OperatorRequestId, ParameterName, ParameterRole, ParameterValue, ParameterValueKind,
49    RecoveryDecisionId, RetentionActionId, StepExecution, StepExecutionId, StepName,
50    StepPartitionId,
51};
52pub use fault::{
53    BackoffKind, BackoffPolicy, FaultAction, FaultClassifier, FaultDecision, FaultDescriptor,
54    FaultEvidence, FaultPhase, FaultPolicy, FaultPolicyError, FaultRule, RetryLimit, RetryOrdinal,
55    RetryStateLimit, RollbackDisposition, SkipCounts, SkipLimit,
56};
57pub use flow::{FlowTarget, MAX_PARTITIONS, NodeId, StartControls, StartLimit, TerminalKind};
58pub use state::{
59    Checkpoint, DurableStateKind, ExecutionContext, StateCodecError, StateError, StateLimits,
60    StateSchemaId, StateSchemaUpgrade, StateSchemaVersion, VersionedStateCodec,
61};