From 0617663b249f9ca488e5de652108b17d67fbaf45 Mon Sep 17 00:00:00 2001 From: Vika Date: Sat, 29 Jul 2023 21:59:56 +0300 Subject: Moved the entire Kittybox tree into the root --- kittybox-rs/util/src/queue.rs | 66 ------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 kittybox-rs/util/src/queue.rs (limited to 'kittybox-rs/util/src/queue.rs') diff --git a/kittybox-rs/util/src/queue.rs b/kittybox-rs/util/src/queue.rs deleted file mode 100644 index c880597..0000000 --- a/kittybox-rs/util/src/queue.rs +++ /dev/null @@ -1,66 +0,0 @@ -use futures_util::Stream; -use std::pin::Pin; -use uuid::Uuid; - -#[async_trait::async_trait] -/// A job queue that can store and return jobs. -pub trait JobQueue: Send + Sync + Sized + Clone + 'static { - /// A type of job object that will be returned by the queue. - type Job: Job; - /// Error type that the queue can produce in its work. - type Error: std::error::Error + Send + Sync + Sized; - - /// Get one item from the job queue, if the job queue has pending - /// items available. - /// - /// # Errors - /// - /// Returns an error if a job queue failed in some way. Having no - /// items is not a failure, in which case `Ok(None)` is returned. - async fn get_one(&self) -> Result, Self::Error>; - /// Put an item into a job queue, returning its UUID. - async fn put(&self, item: &T) -> Result; - - /* - /// Check the amount of pending and stuck items in the job queue. - async fn len(&self) -> Result<(usize, usize), Self::Error>; - /// Returns whether the job queue has some pending items. - async fn is_empty(&self) -> Result { - Ok(self.len().await?.0 == 0) - } - /// Returns whether the job queue has some stuck items that - /// require manual cleanup. - async fn has_stuck(&self) -> Result { - Ok(self.len().await?.1 > 0) - } - */ - - /// Consume the job queue object and return a stream of unstuck - /// items from the job queue. - /// - /// Note that one item may be returned several times if it is not - /// marked as done. - async fn into_stream(self) -> Result> + Send>>, Self::Error>; -} - -#[async_trait::async_trait] -/// A job description yielded from a job queue. -/// -/// # Implementors -/// -/// On [`Drop`], the job should be returned to a job queue. If your -/// job queue tracks attempts, the counter should be incremented by -/// one. -/// -/// Figuring how to do this asynchronously from a synchronous trait -/// is left as an exercise to the reader. -pub trait Job>: Send + Sync + Sized { - /// Get the object describing the task itself. - fn job(&self) -> &T; - /// Mark the job as done and remove it from the job queue. - async fn done(self) -> Result<(), Q::Error>; -} - -/// An object describing the job itself, returned as part of a -/// [`Job`]. -pub trait JobItem: Send + Sync + Sized + std::fmt::Debug {} -- cgit 1.4.1