RepetitionState

Enum RepetitionState 

Source
pub enum RepetitionState {
    Reviewing {
        ease_factor: f64,
        last_repetition: DateTime<Utc>,
        next_repetition: DateTime<Utc>,
    },
    Learning {
        easy_count: i16,
        stage: u16,
        next_repetition: DateTime<Utc>,
    },
}
Expand description

The repetition state of a learnable item.

Variants§

§

Reviewing

The item has made it through the initial learning phase and will now be repeated at larger intervals.

Fields

§ease_factor: f64

The ease factor of the word. It influences how fast the intervals between repetitions get larger.

§last_repetition: DateTime<Utc>

The time of the last repetition.

§next_repetition: DateTime<Utc>

The time of the next repetition.

§

Learning

The item is in the initial learning phase where it is repeated in shorter intervals.

Fields

§easy_count: i16

The count of easy repetition results. RepetitionResult::Easy increments this by one, and RepetitionResult::Hard and RepetitionResult::Again decrement this by one.

§stage: u16

The current stage of the item within the learning phase.

§next_repetition: DateTime<Utc>

The time of the next repetition.

Implementations§

Source§

impl RepetitionState

Source

pub fn new<TZ: TimeZone>(datetime: DateTime<TZ>) -> Self

Construct a new repetition state in learning stage 0, with its first repetition being at the given datetime.

Source

pub fn update<TZ: TimeZone>( self, datetime: DateTime<TZ>, result: RepetitionResult, configuration: &Configuration, ) -> Result<Self, Error>

Update the repetition state after an item was repeated by the user. The time of the repetition was datetime, and the result of the repetition was result. The configuration of the algorithm is given as configuration. The source of randomness used for jitter is rand::thread_rng.

Source

pub fn update_with_rng<TZ: TimeZone, RngType: Rng>( self, datetime: DateTime<TZ>, result: RepetitionResult, configuration: &Configuration, rng: &mut RngType, ) -> Result<Self, Error>

Update the repetition state after an item was repeated by the user. The time of the repetition was datetime, and the result of the repetition was result. The configuration of the algorithm is given as configuration. The given rng is the source of randomness used for jitter.

Trait Implementations§

Source§

impl Clone for RepetitionState

Source§

fn clone(&self) -> RepetitionState

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 RepetitionState

Source§

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

Formats the value using the given formatter. Read more

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