qubit-lock 0.8.0

Lock utilities library providing synchronous, asynchronous, and monitor-based locking primitives
Documentation
/*******************************************************************************
 *
 *    Copyright (c) 2025 - 2026 Haixing Hu.
 *
 *    SPDX-License-Identifier: Apache-2.0
 *
 *    Licensed under the Apache License, Version 2.0.
 *
 ******************************************************************************/
//! Blocking timeout notification-wait capability.

use std::time::Duration;

use crate::monitor::WaitTimeoutStatus;

/// Waits for a notification with a relative timeout.
pub trait TimeoutNotificationWaiter {
    /// Blocks until a notification is observed or the timeout expires.
    ///
    /// # Arguments
    ///
    /// * `timeout` - Maximum relative duration to wait.
    ///
    /// # Returns
    ///
    /// A status describing whether the wait returned before the timeout.
    fn wait_for(&self, timeout: Duration) -> WaitTimeoutStatus;
}