Trait NetQueue

Source
pub trait NetQueue<Item> {
    type KeyId;
    type Error;

    // Required methods
    fn insert(
        &mut self,
        item: Item,
    ) -> Result<Self::KeyId, NetQueueError<Self::Error>>;
    fn remove(
        &mut self,
        key: Self::KeyId,
    ) -> Result<Item, NetQueueError<Self::Error>>;
    fn get(
        &mut self,
        key: Self::KeyId,
    ) -> Result<&Item, NetQueueError<Self::Error>>;
    fn flush(&mut self) -> Result<Vec<Item>, NetQueueError<Self::Error>>;
}

Required Associated Types§

Source

type KeyId

The Item of the queue. The “key” that each Item is stored under (used for removal)

Source

type Error

A custom error specifier for NetQueueError

Required Methods§

Source

fn insert( &mut self, item: Item, ) -> Result<Self::KeyId, NetQueueError<Self::Error>>

Inserts Item into the queue, given the conditions are fulfilled.

Source

fn remove( &mut self, key: Self::KeyId, ) -> Result<Item, NetQueueError<Self::Error>>

Remove an Item from the queue by providing an instance of Self::KeyId

Source

fn get(&mut self, key: Self::KeyId) -> Result<&Item, NetQueueError<Self::Error>>

Retrieves an Item from the queue, by reference.

Source

fn flush(&mut self) -> Result<Vec<Item>, NetQueueError<Self::Error>>

Clears the entire queue.

Implementors§

Source§

impl<Item> NetQueue<Item> for RecoveryQueue<Item>