Skip to main content

qubit_executor/task/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! Task handles and task-result types.
11
12mod atomic_task_status;
13mod cancel_result;
14mod running_task_slot;
15pub(crate) mod task_admission_gate;
16mod task_endpoint_pair;
17mod task_execution_error;
18mod task_handle;
19mod task_handle_future;
20mod task_result_handle;
21mod task_runner;
22mod task_slot;
23mod task_state;
24mod task_status;
25mod task_status_event;
26mod task_status_machine;
27mod tracked_task;
28mod tracked_task_handle;
29mod try_get;
30
31pub use cancel_result::CancelResult;
32pub use task_execution_error::{
33    TaskExecutionError,
34    TaskResult,
35};
36pub use task_handle::TaskHandle;
37pub use task_handle_future::TaskHandleFuture;
38pub use task_status::TaskStatus;
39pub use tracked_task::TrackedTask;
40pub use try_get::TryGet;
41
42/// Service-provider interfaces for custom executor implementations.
43///
44/// These low-level building blocks are intended for crates that implement
45/// executor services or execution strategies. Ordinary users should prefer
46/// [`TaskHandle`], [`TrackedTask`], and the executor/service traits.
47pub mod spi {
48    pub use super::running_task_slot::RunningTaskSlot;
49    pub use super::task_endpoint_pair::TaskEndpointPair;
50    pub use super::task_result_handle::TaskResultHandle;
51    pub use super::task_runner::TaskRunner;
52    pub use super::task_slot::TaskSlot;
53    pub use super::tracked_task_handle::TrackedTaskHandle;
54}