pub struct App {Show 37 fields
pub should_quit: bool,
pub active_panel: PanelId,
pub session: Session,
pub context: Context,
pub analyzer: CommandAnalyzer,
pub educator: Educator,
pub theme: Theme,
pub show_help: bool,
pub command_buffer: String,
pub last_explanation: Option<Explanation>,
pub last_output: String,
pub output_scroll: usize,
pub environment_vars: HashMap<String, String>,
pub aliases: HashMap<String, String>,
pub config: Config,
pub completion_suggestions: Vec<String>,
pub ai_conversation: Vec<Message>,
pub ai_input_buffer: String,
pub ai_response: Option<String>,
pub ai_loading: bool,
pub ai_mode: bool,
pub onboarding: Option<OnboardingWizard>,
pub settings_panel: Option<SettingsPanel>,
pub analytics: Option<Analytics>,
pub lesson_panel: Option<LessonPanel>,
pub lesson_mode: bool,
pub virtual_fs: Option<VirtualFileSystem>,
pub lesson_menu: Option<LessonMenuPanel>,
pub completed_lessons: HashSet<String>,
pub user_stats: UserStats,
pub challenge_manager: ChallengeManager,
pub recommendation_engine: RecommendationEngine,
pub achievements_panel: Option<AchievementsPanel>,
pub progress_panel: Option<ProgressPanel>,
pub challenges_panel: Option<ChallengesPanel>,
pub pending_achievements: Vec<Achievement>,
pub showing_notification: Option<NotificationPanel>,
/* private fields */
}Expand description
Main application state
Fields§
§should_quit: boolWhether the application should quit
active_panel: PanelIdCurrently active panel
session: SessionUser session
context: ContextCurrent context (project detection, etc.)
analyzer: CommandAnalyzerCommand analyzer
educator: EducatorEducator for explanations
theme: ThemeCurrent theme
show_help: boolShow help overlay
command_buffer: StringCommand buffer for shell input
last_explanation: Option<Explanation>Last command explanation
last_output: StringLast command output
output_scroll: usizeOutput panel scroll offset
environment_vars: HashMap<String, String>Environment variables set by export command
aliases: HashMap<String, String>Command aliases (name -> command)
config: ConfigApplication configuration
completion_suggestions: Vec<String>Current completion suggestions (shown below shell input)
ai_conversation: Vec<Message>AI conversation history
ai_input_buffer: StringAI input buffer (when in AI mode)
ai_response: Option<String>Last AI response
ai_loading: boolAI loading state
ai_mode: boolAI mode enabled (toggle between shell and AI)
onboarding: Option<OnboardingWizard>Onboarding wizard (shown on first run)
settings_panel: Option<SettingsPanel>Settings panel (interactive)
analytics: Option<Analytics>Analytics tracker
lesson_panel: Option<LessonPanel>Lesson panel for interactive lessons
lesson_mode: boolLesson mode enabled (toggle between explanation and lesson)
virtual_fs: Option<VirtualFileSystem>Virtual filesystem for lesson sandboxing
Lesson menu for selecting lessons
completed_lessons: HashSet<String>Completed lesson IDs
user_stats: UserStatsUser statistics and progress tracking
challenge_manager: ChallengeManagerChallenge manager for daily/weekly challenges
recommendation_engine: RecommendationEngineRecommendation engine for suggesting lessons
achievements_panel: Option<AchievementsPanel>Achievements panel
progress_panel: Option<ProgressPanel>Progress panel
challenges_panel: Option<ChallengesPanel>Challenges panel
pending_achievements: Vec<Achievement>Pending achievements to show notifications for
showing_notification: Option<NotificationPanel>Currently showing achievement notification
Implementations§
Source§impl App
impl App
Sourcepub fn update_context(&mut self) -> Result<()>
pub fn update_context(&mut self) -> Result<()>
Update context (e.g., when directory changes)
Sourcepub fn toggle_ai_mode(&mut self)
pub fn toggle_ai_mode(&mut self)
Toggle AI assistant mode
Sourcepub fn toggle_lesson_mode(&mut self)
pub fn toggle_lesson_mode(&mut self)
Toggle lesson mode
Sourcepub fn clear_ai_conversation(&mut self)
pub fn clear_ai_conversation(&mut self)
Clear AI conversation
Sourcepub fn toggle_achievements_panel(&mut self)
pub fn toggle_achievements_panel(&mut self)
Toggle achievements panel
Sourcepub fn toggle_progress_panel(&mut self)
pub fn toggle_progress_panel(&mut self)
Toggle progress panel
Sourcepub fn toggle_challenges_panel(&mut self)
pub fn toggle_challenges_panel(&mut self)
Toggle challenges panel
Sourcepub fn check_and_unlock_achievements(&mut self)
pub fn check_and_unlock_achievements(&mut self)
Check for newly unlocked achievements and queue notifications
Sourcepub fn record_command_for_stats(&mut self, command: &str)
pub fn record_command_for_stats(&mut self, command: &str)
Record command execution for stats tracking
Sourcepub fn record_lesson_completion(
&mut self,
lesson_id: String,
difficulty: Difficulty,
)
pub fn record_lesson_completion( &mut self, lesson_id: String, difficulty: Difficulty, )
Record lesson completion and check for achievements
Auto Trait Implementations§
impl !Freeze for App
impl !RefUnwindSafe for App
impl !Send for App
impl !Sync for App
impl Unpin for App
impl !UnwindSafe for App
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more