SetBy

Struct SetBy 

Source
pub struct SetBy<K, F>
where F: Fn(&K, &K) -> Ordering,
{ /* private fields */ }
Expand description

A simple set of keys, implemented using a splay tree.

This version allows a custom sorting function to be used.

Implementations§

Source§

impl<K, F> SetBy<K, F>
where F: Fn(&K, &K) -> Ordering,

Source

pub fn new(compare: F) -> SetBy<K, F>

Constructor

Source

pub fn with_capacity(capacity: usize, compare: F) -> SetBy<K, F>

Constructor

Source

pub fn count(&self) -> usize

Get the number of key/value pairs in the Set

Source

pub fn is_empty(&self) -> bool

Check if there are any key/value pairs in the Set

Source

pub fn clear(&mut self)

Remove all key/value pairs from the Set

Source

pub fn reserve(&mut self, additional: usize)

Reserves capacity for at least additional more key/value pairs

Source

pub fn get(&self, key: &K) -> Option<&K>

Get a value by key.

If the key is not in the tree then None is returned.

Source

pub fn set(&mut self, key: K) -> &K

Set a value by key.

set attempts to reconfigure the tree for future lookups by promoting the key to the top of the tree.

Source

pub fn unset(&mut self, key: &K) -> Option<&K>

Unset a value by key.

If the key does not exist, then this function has no effect.

Source

pub fn first(&self) -> Option<&K>

Get the first key in the set

Source

pub fn last(&self) -> Option<&K>

Get the last key in the set

Source

pub fn pop_first(&self) -> Option<&K>

Pop the first key from the set

Source

pub fn pop_last(&self) -> Option<&K>

Pop the last key from the set

Source

pub fn iter(&self) -> SetByIterator<'_, K, F>

Iterate over the key/value pairs in the Set

Trait Implementations§

Source§

impl<K: Clone, F> Clone for SetBy<K, F>
where F: Fn(&K, &K) -> Ordering + Clone,

Source§

fn clone(&self) -> SetBy<K, F>

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<'a, K, F> IntoIterator for &'a SetBy<K, F>
where F: Fn(&K, &K) -> Ordering,

Source§

type Item = &'a K

The type of the elements being iterated over.
Source§

type IntoIter = SetByIterator<'a, K, F>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more

Auto Trait Implementations§

§

impl<K, F> !Freeze for SetBy<K, F>

§

impl<K, F> !RefUnwindSafe for SetBy<K, F>

§

impl<K, F> Send for SetBy<K, F>
where F: Send, K: Send,

§

impl<K, F> !Sync for SetBy<K, F>

§

impl<K, F> Unpin for SetBy<K, F>
where F: Unpin, K: Unpin,

§

impl<K, F> UnwindSafe for SetBy<K, F>
where F: UnwindSafe, K: UnwindSafe,

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.