pub struct UserProgress {Show 13 fields
pub xp: u64,
pub level: u32,
pub streak_days: u32,
pub last_session: Option<String>,
pub exercises: HashMap<String, ExerciseProgress>,
pub modules: HashMap<String, ModuleProgress>,
pub combo: u32,
pub best_combo: u32,
pub streak_freezes: u8,
pub last_streak_date: Option<String>,
pub achievements: HashSet<String>,
pub title: Option<String>,
pub last_weekly_freeze_date: Option<String>,
}Fields§
§xp: u64§level: u32§streak_days: u32§last_session: Option<String>§exercises: HashMap<String, ExerciseProgress>§modules: HashMap<String, ModuleProgress>§combo: u32§best_combo: u32§streak_freezes: u8§last_streak_date: Option<String>§achievements: HashSet<String>§title: Option<String>§last_weekly_freeze_date: Option<String>Implementations§
Source§impl UserProgress
impl UserProgress
pub fn new() -> Self
pub fn load() -> Self
pub fn save(&self)
pub fn add_xp(&mut self, amount: u64)
pub fn record_attempt(&mut self, exercise_id: &str, correct: bool)
pub fn get_exercise_progress( &self, exercise_id: &str, ) -> Option<&ExerciseProgress>
pub fn get_module_progress(&self, module_id: &str) -> Option<&ModuleProgress>
pub fn update_module_score(&mut self, module_id: &str, score: u32)
Trait Implementations§
Source§impl Clone for UserProgress
impl Clone for UserProgress
Source§fn clone(&self) -> UserProgress
fn clone(&self) -> UserProgress
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UserProgress
impl Debug for UserProgress
Source§impl Default for UserProgress
impl Default for UserProgress
Source§fn default() -> UserProgress
fn default() -> UserProgress
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for UserProgress
impl<'de> Deserialize<'de> for UserProgress
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for UserProgress
impl RefUnwindSafe for UserProgress
impl Send for UserProgress
impl Sync for UserProgress
impl Unpin for UserProgress
impl UnsafeUnpin for UserProgress
impl UnwindSafe for UserProgress
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Create an instance of this type from an initialization function
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Convert from a type to another type.
§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
§fn super_into(self) -> O
fn super_into(self) -> O
Convert from a type to another type.