pub struct QueueProducerHandle<T, I = u32, const N: usize = 0>{ /* private fields */ }Expand description
Producer handle for the MPMC queue.
A lightweight, cloneable handle that allows pushing items to the queue.
Multiple producer handles can be created for the same queue, enabling
multi-producer scenarios. Each clone shares the same underlying queue
via Arc.
§Type Parameters
T- The data type to store (must beCopy + Send + Sync + Default)I- The index/sequence number type (default:u32)N- Compile-time capacity (0 = dynamic, >0 = static)
§Examples
use jacques::{owned::queue, traits::QueueProducer};
use std::thread;
let (producer, consumer) = queue::<u64>().capacity(128).channels()?;
// Clone producer for another thread
let producer2 = producer.clone();
let handle = thread::spawn(move || {
producer2.push(42).unwrap();
});
producer.push(100)?;
handle.join().unwrap();Trait Implementations§
Source§impl<T, I, const N: usize> Clone for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> Clone for QueueProducerHandle<T, I, N>
Source§impl<T, I, const N: usize> Debug for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> Debug for QueueProducerHandle<T, I, N>
Source§impl<T, I, const N: usize> QueueProducer<T> for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> QueueProducer<T> for QueueProducerHandle<T, I, N>
Source§fn try_push(&self, value: T) -> Result<(), (T, QueueError)>
fn try_push(&self, value: T) -> Result<(), (T, QueueError)>
Push a value into the queue but does not block if we cannot push
it to the queue. Read more
Source§fn push_with_seq(&self, value: T) -> Result<usize, QueueError>
fn push_with_seq(&self, value: T) -> Result<usize, QueueError>
Push a value and get the sequence number. Read more
Auto Trait Implementations§
impl<T, I, const N: usize> Freeze for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> RefUnwindSafe for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> Send for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> Sync for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> Unpin for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> UnsafeUnpin for QueueProducerHandle<T, I, N>
impl<T, I, const N: usize> UnwindSafe for QueueProducerHandle<T, I, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more