PriorityConfig

Struct PriorityConfig 

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

Configuration for priority-based queue strategies.

Implementations§

Source§

impl PriorityConfig

Source

pub fn new() -> Self

Create a new empty priority configuration.

Source

pub fn default_strategy(self, strategy: QueueStrategy) -> Self

Set the default queue strategy for all priorities not matched by other rules.

Source

pub fn exact(self, priority: isize, strategy: QueueStrategy) -> Self

Set the queue strategy for an exact priority value.

Source

pub fn greater_or_equal(self, threshold: isize, strategy: QueueStrategy) -> Self

Set the queue strategy for priorities greater than or equal to the threshold. This is a convenience method that creates a range [threshold, isize::MAX].

Source

pub fn greater_than(self, threshold: isize, strategy: QueueStrategy) -> Self

Set the queue strategy for priorities greater than the threshold (exclusive). This is a convenience method that creates a range [threshold + 1, isize::MAX].

Source

pub fn less_or_equal(self, threshold: isize, strategy: QueueStrategy) -> Self

Set the queue strategy for priorities less than or equal to the threshold. This is a convenience method that creates a range [isize::MIN, threshold].

Source

pub fn less_than(self, threshold: isize, strategy: QueueStrategy) -> Self

Set the queue strategy for priorities less than the threshold (exclusive). This is a convenience method that creates a range [isize::MIN, threshold - 1].

Source

pub fn range(self, min: isize, max: isize, strategy: QueueStrategy) -> Self

Set the queue strategy for priorities within a range [min, max] (inclusive).

Source

pub fn strategy_for_priority(&self, priority: isize) -> QueueStrategy

Returns the queue strategy that would be used for the given priority.

This method evaluates all configured rules to determine which queue strategy (FIFO or LIFO) would be applied to a waiter with the specified priority.

§Arguments
  • priority - The priority level to query
§Returns

The QueueStrategy that would be used for the given priority.

§Examples
use ranked_semaphore::{PriorityConfig, QueueStrategy};

let config = PriorityConfig::new()
    .default_strategy(QueueStrategy::Fifo)
    .exact(10, QueueStrategy::Lifo);

assert_eq!(config.strategy_for_priority(5), QueueStrategy::Fifo);
assert_eq!(config.strategy_for_priority(10), QueueStrategy::Lifo);

Trait Implementations§

Source§

impl Clone for PriorityConfig

Source§

fn clone(&self) -> PriorityConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PriorityConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PriorityConfig

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.