Icon HelpCircleForumIcon Link

⌘K

Icon HelpCircleForumIcon Link
Nightly /
Queue

Icon LinkQueue Library

A Queue is a linear structure which follows the First-In-First-Out (FIFO) principle. This means that the elements added first are the ones that get removed first.

For implementation details on the Queue Library please see the Sway Libs Docs Icon Link.

Icon LinkImporting the Queue Library

In order to use the Queue Library, Sway Libs must be added to the Forc.toml file and then imported into your Sway project. To add Sway Libs as a dependency to the Forc.toml file in your project please see the Getting Started .

To import the Queue Library to your Sway Smart Contract, add the following to your Sway file:

use sway_libs::queue::*;

Icon LinkBasic Functionality

Icon LinkInstantiating a New Queue

Once the Queue has been imported, you can create a new queue instance by calling the new function.

let mut queue = Queue::new();

Icon LinkEnqueuing elements

Adding elements to the Queue can be done using the enqueue function.

// Enqueue an element to the queue
queue.enqueue(10u8);

Icon LinkDequeuing Elements

To remove elements from the Queue, the dequeue function is used. This function follows the FIFO principle.

// Dequeue the first element and unwrap the value
let first_item = queue.dequeue().unwrap();

Icon LinkFetching the Head Element

To retrieve the element at the head of the Queue without removing it, you can use the peek function.

// Peek at the head of the queue
let head_item = queue.peek();

Icon LinkChecking the Queue's Length

The is_empty and len functions can be used to check if the queue is empty and to get the number of elements in the queue respectively.

// Checks if queue is empty (returns True or False)
let is_queue_empty = queue.is_empty();
 
// Returns length of queue
let queue_length = queue.len();