use std::{fmt::Debug, sync::{atomic::{AtomicBool, AtomicUsize, Ordering}, Arc, Weak}};
pub struct SharedDetails<Q, N = ()>
{
queue: Q,
receivers_notifier: N,
}
impl<Q, N> SharedDetails<Q, N>
{
pub fn new(queue: Q, receivers_notifier: N) -> Self {
Self
{
queue,
receivers_notifier,
}
}
pub fn queue_ref(&self) -> &Q
{
&self.queue
}
pub fn receivers_notifier_ref(&self) -> &N
{
&self.receivers_notifier
}
}
impl<Q, N> Debug for SharedDetails<Q, N>
where Q: Debug,
N: Debug
{
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("SharedDetails").field("queue", &self.queue).field("receivers_notifier", &self.receivers_notifier).finish()
}
}