Trait disjoint_sets::ElementType
[−]
[src]
pub trait ElementType: Copy + Debug + Eq { fn from_usize(n: usize) -> Option<Self>; fn to_usize(self) -> usize; }
A type that can be used as a union-find element.
It must be safely convertible to and from usize
.
The two methods must be well-behaved partial inverses as follows:
- For all
n: usize
, ifSelf::from_usize(n)
=Some(t)
thent.to_usize()
=n
. - For all
t: Self
, ift.to_usize()
=n
thenSelf::from_usize(n)
=Some(t)
. - For all
n: usize
, ifSelf::from_usize(n)
=None
then for allm: usize
such thatm > n
,Self::from_usize(m)
=None
.
In other words, ElementType
sets up a bijection between the first
k usize
values and some k values of the Self
type.
Required Methods
fn from_usize(n: usize) -> Option<Self>
Converts from usize
to the element type.
Returns None
if the argument won’t fit in Self
.
fn to_usize(self) -> usize
Converts from the element type to usize
.