RantSelector

Struct RantSelector 

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

Represents a Rant selector instance used by the resolver to select block branches.

Implementations§

Source§

impl RantSelector

Source

pub fn new(mode: SelectorMode) -> Self

Creates a new selector.

Source

pub fn into_handle(self) -> RantSelectorHandle

Converts the instance into a handle.

Source

pub fn mode(&self) -> SelectorMode

The mode assigned to the selector.

Source

pub fn index(&self) -> usize

The next index to be selected.

Source

pub fn count(&self) -> usize

The number of block elements that this selector is initialized for.

A value of 0 indicates that the selector is uninitialized (as selecting over 0 branches is impossible).

Source

pub fn parity(&self) -> bool

Indicates the parity state of the selector. Some selectors use two alternating passes (such as mirror modes). The parity indicates which of these passes is currently active.

Source

pub fn is_frozen(&self) -> bool

Indicates whether the selector is frozen.

Source

pub fn set_frozen(&mut self, frozen: bool)

Sets the frozen state of the selector.

Source

pub fn is_initialized(&self) -> bool

Indicates whether the selector has been initialized with [Selector::init].

Source

pub fn init( &mut self, rng: &RantRng, elem_count: usize, ) -> Result<(), SelectorError>

Initializes the selector state using the specified element count.

Source

pub fn select( &mut self, elem_count: usize, rng: &RantRng, ) -> Result<usize, SelectorError>

Returns the next branch index and advances the selector state.

Trait Implementations§

Source§

impl Clone for RantSelector

Source§

fn clone(&self) -> RantSelector

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 RantSelector

Source§

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

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

impl From<RantSelector> for RantSelectorHandle

Source§

fn from(sel: RantSelector) -> Self

Converts to this type from the input type.
Source§

impl IntoRant for RantSelector

Source§

fn into_rant(self) -> RantValue

Converts to a RantValue.
Source§

impl TryIntoRant for RantSelector

Source§

fn try_into_rant(self) -> Result<RantValue, ValueError>

Attempts to convert to a RantValue.

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V