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 tracked_task;
26mod tracked_task_handle;
27mod try_get;
28
29pub use cancel_result::CancelResult;
30pub use task_execution_error::{
31    TaskExecutionError,
32    TaskResult,
33};
34pub use task_handle::TaskHandle;
35pub use task_handle_future::TaskHandleFuture;
36pub use task_status::TaskStatus;
37pub use tracked_task::TrackedTask;
38pub use try_get::TryGet;
39
40/// Service-provider interfaces for custom executor implementations.
41///
42/// These low-level building blocks are intended for crates that implement
43/// executor services or execution strategies. Ordinary users should prefer
44/// [`TaskHandle`], [`TrackedTask`], and the executor/service traits.
45pub mod spi {
46    pub use super::running_task_slot::RunningTaskSlot;
47    pub use super::task_endpoint_pair::TaskEndpointPair;
48    pub use super::task_result_handle::TaskResultHandle;
49    pub use super::task_runner::TaskRunner;
50    pub use super::task_slot::TaskSlot;
51    pub use super::tracked_task_handle::TrackedTaskHandle;
52}