3 releases

0.0.3 Oct 25, 2024
0.0.2 Oct 15, 2024
0.0.1 Oct 15, 2024

#766 in Algorithms

Download history 297/week @ 2024-10-13 218/week @ 2024-10-20 53/week @ 2024-10-27 10/week @ 2024-11-03 11/week @ 2024-11-17 21/week @ 2024-11-24 23/week @ 2024-12-01

56 downloads per month
Used in 11 crates (6 directly)

MIT license

11KB
170 lines

🏃‍♂️ tick-queue

Crates.io Documentation

tick-queue is a Rust library designed to manage a sequence of items in a strick tick order. Each item is associated with a unique TickId, ensuring items are kept in a correct order.

✨ Features

  • Step Management: Queue items with associated TickId to ensure correct processing.
  • Iterator Support: Iterate through items with both standard and indexed iteration.
  • Flexible Item Handling: Push, pop, and take items from the queue with tick validation.
  • Error Handling: Robust error handling for cases such as incorrect TickId order.

🚀 Getting Started

Add tick-queue to your Cargo.toml:

[dependencies]
tick-queue = "0.0.3"

lib.rs:

Tick Queue Crate

The tick-queue crate provides utilities for managing a sequence of items. Each item is associated with a unique tick identifier (TickId), ensuring that items are processed in the correct order.

The crate offers functionality for pushing items, iterating over them, and managing the internal state of the item queue. It supports both direct manipulation of the item queue and indexed iteration.

Example

use tick_queue::{Queue, ItemInfo};
use tick_id::TickId;

// Create a new Queue instance with an initial tick
let mut queue = Queue::new(TickId::new(0));

// Push items into the queue
queue.push(TickId::new(0), "Step 1").unwrap();
queue.push(TickId::new(1), "Step 2").unwrap();

// Pop the first item
let item = queue.pop();
assert_eq!(item.unwrap().item, "Step 1");

// Iterate over remaining items
for item in queue.iter() {
println!("Tick {}: {}", item.tick_id, item.item);
}

Dependencies

~6KB