QoxideQueue

Struct QoxideQueue 

Source
pub struct QoxideQueue { /* private fields */ }
Expand description

A SQLite-backed message queue.

Messages flow through states: PendingReservedCompleted. Use add to enqueue, reserve to dequeue, and complete or fail to finish processing.

Implementations§

Source§

impl QoxideQueue

Source

pub fn new() -> Self

Creates a new in-memory queue.

Data is lost when the queue is dropped. For persistence, use new_with_path.

Source

pub fn new_with_path(path: &str) -> Self

Creates a new file-backed queue at the given path.

Enables WAL mode for better concurrent read performance. The database file is created if it doesn’t exist.

Source

pub fn size(&self) -> Result<QueueSize, Error>

Returns the count of messages in each state.

Source

pub fn add(&mut self, payload: Vec<u8>) -> Result<i64, Error>

Adds a message to the queue with the given payload.

Returns the message ID which can be used with complete or fail.

Source

pub fn reserve(&mut self) -> Result<(i64, Vec<u8>), Error>

Atomically reserves the next pending message.

Returns the message ID and payload. The message state changes from Pending to Reserved. Returns an error if no pending messages are available.

Source

pub fn complete(&self, id: i64) -> Result<(), Error>

Marks a reserved message as successfully completed.

Source

pub fn fail(&mut self, id: i64) -> Result<(), Error>

Marks a reserved message as failed, returning it to pending state.

The message will be available for reserve again.

Trait Implementations§

Source§

impl Default for QoxideQueue

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.