Struct Set

Source
pub struct Set<T> { /* private fields */ }
Expand description

A set of values held in a linked list.

Implementations§

Source§

impl<T> Set<T>

Source

pub const fn new() -> Self

Create a new, empty, Set.

Source

pub fn try_insert(&self, value: T) -> bool
where T: Eq,

Try to insert a value into the set. Returns true if the value was inserted or false if the value was already considered present.

Source

pub fn wait_to_insert(&self, value: T)
where T: Eq,

Available on crate feature std only.

If the value provided is not in the set, insert it. Otherwise, block the current thread until another thread calls remove for the given value (if multiple threads are waiting, only one of them will return).

Source

pub unsafe fn remove(&self, value: &T) -> bool
where T: Eq,

Mark a value as absent from the set, or notify a waiting thread that it may proceed.

Returns true if the value was present in the set.

§Safety

Must not be called concurrently from multiple threads with the same value.

Trait Implementations§

Source§

impl<T> Default for Set<T>

Source§

fn default() -> Self

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

impl<T> Drop for Set<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for Set<T>

§

impl<T> RefUnwindSafe for Set<T>

§

impl<T> Send for Set<T>

§

impl<T> Sync for Set<T>

§

impl<T> Unpin for Set<T>

§

impl<T> UnwindSafe for Set<T>
where T: RefUnwindSafe,

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.