use std::{fmt, ops};
use readlock::SharedReadGuard;
use crate::state::ObservableState;
#[must_use]
#[clippy::has_significant_drop]
pub struct ObservableReadGuard<'a, T> {
inner: SharedReadGuard<'a, ObservableState<T>>,
}
impl<'a, T> ObservableReadGuard<'a, T> {
pub(crate) fn new(inner: SharedReadGuard<'a, ObservableState<T>>) -> Self {
Self { inner }
}
}
impl<T: fmt::Debug> fmt::Debug for ObservableReadGuard<'_, T> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.inner.fmt(f)
}
}
impl<T> ops::Deref for ObservableReadGuard<'_, T> {
type Target = T;
fn deref(&self) -> &Self::Target {
self.inner.get()
}
}