Skip to main content

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}