Skip to main content

RtQueueBase

Trait RtQueueBase 

Source
pub trait RtQueueBase<T>: Send + Sync {
    // Required methods
    fn push(&self, value: T) -> QueueResult<()>;
    fn pop(&self) -> Option<T>;
    fn len(&self) -> usize;
    fn capacity(&self) -> usize;
    fn clear(&self);

    // Provided methods
    fn is_empty(&self) -> bool { ... }
    fn is_full(&self) -> bool { ... }
}
Expand description

Базовый трейт для всех очередей, безопасных для реального времени

Все реализации должны быть:

  • Lock-free (никаких мьютексов)
  • RT-safe (без аллокаций, без блокировок)

Required Methods§

Source

fn push(&self, value: T) -> QueueResult<()>

Добавить элемент в очередь

Source

fn pop(&self) -> Option<T>

Извлечь элемент из очереди

Source

fn len(&self) -> usize

Текущий размер очереди

Source

fn capacity(&self) -> usize

Вместимость очереди

Source

fn clear(&self)

Очистить очередь

Provided Methods§

Source

fn is_empty(&self) -> bool

Проверить, пуста ли очередь

Source

fn is_full(&self) -> bool

Проверить, полна ли очередь

Implementors§

Source§

impl<T: Copy + Default + Send + Sync, const CAP: usize> RtQueueBase<T> for SpscQueue<T, CAP>