MarkovChain

Struct MarkovChain 

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

Markov model structure

Implementations§

Source§

impl<T> MarkovChain<T>
where T: Clone + Eq + Ord + PartialOrd + PartialEq,

Source

pub fn from(elements: &[T]) -> MarkovChain<T>

Builds a new model from [&[T]].

T must implement Clone, Eq, Ord, PartialOrd and PartialEq traits.

Source

pub fn next(&mut self) -> &T

Returns a next possible state.

The first state will be determined randomly, and the next one will be chosen by its state space.

If you want to initialize the chain of states, use initialize() methods.

Source

pub fn next_rng(&mut self, rng: &mut ThreadRng) -> &T

Returns a next possible state using an external ThreadRng.

Source

pub fn initialize(&mut self)

Initializes prev_index with the length of state_space.

Trait Implementations§

Source§

impl<T: Debug> Debug for MarkovChain<T>

Source§

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

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

impl<'de, T> Deserialize<'de> for MarkovChain<T>
where T: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<T: PartialEq> PartialEq for MarkovChain<T>

Source§

fn eq(&self, other: &MarkovChain<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T> Serialize for MarkovChain<T>
where T: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<T> StructuralPartialEq for MarkovChain<T>

Auto Trait Implementations§

§

impl<T> Freeze for MarkovChain<T>

§

impl<T> RefUnwindSafe for MarkovChain<T>
where T: RefUnwindSafe,

§

impl<T> Send for MarkovChain<T>
where T: Send,

§

impl<T> Sync for MarkovChain<T>
where T: Sync,

§

impl<T> Unpin for MarkovChain<T>
where T: Unpin,

§

impl<T> UnwindSafe for MarkovChain<T>
where T: 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> 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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,