qubit_retry/event/attempt_timeout_source.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//! Attempt timeout source metadata.
11
12use serde::{
13 Deserialize,
14 Serialize,
15};
16
17/// Source of a per-attempt timeout selection.
18#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
19pub enum AttemptTimeoutSource {
20 /// Timeout selected from [`RetryOptions`](crate::RetryOptions) attempt timeout
21 /// configuration.
22 Configured,
23 /// Timeout selected from remaining max-operation-elapsed budget.
24 MaxOperationElapsed,
25 /// Timeout selected from remaining max-total-elapsed budget.
26 MaxTotalElapsed,
27}