Skip to content

Commit 7859f6f

Browse files
unhappychoiceclaude
andcommitted
refactor: remove re-exports from game module to enforce proper separation
Remove TUI-related re-exports from presentation::game module and update all import statements to use presentation::tui directly. This enforces proper separation of concerns between game logic and TUI infrastructure. Changes: - Remove Screen, ScreenDataProvider, ScreenType, UpdateStrategy re-exports from game/mod.rs - Remove ScreenTransition, ScreenTransitionManager re-exports from game/mod.rs - Remove ScreenDataProvider re-exports from game/models/mod.rs - Update all import statements in src/ to use presentation::tui for TUI types - Update all import statements in tests/ to use presentation::tui for TUI types - Separate game imports (GameData, SessionManager) from tui imports (Screen, ScreenType, etc.) Breaking Change: External code using presentation::game::Screen or related types must now import from presentation::tui instead. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent da5370b commit 7859f6f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+71
-89
lines changed

src/presentation/cli/commands/game.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ use crate::domain::services::theme_manager::ThemeManager;
55
use crate::domain::services::version_service::VersionService;
66
use crate::infrastructure::logging;
77
use crate::presentation::cli::args::Cli;
8-
use crate::presentation::game::models::ScreenType;
9-
use crate::presentation::tui::screen_manager::ScreenManager;
10-
use crate::presentation::tui::screens::{VersionCheckResult, VersionCheckScreen};
118
use crate::presentation::game::{GameData, SessionManager};
9+
use crate::presentation::tui::{ScreenManager, ScreenType};
10+
use crate::presentation::tui::screens::{VersionCheckResult, VersionCheckScreen};
1211
use crate::presentation::signal_handler::setup_signal_handlers;
1312
use crate::{GitTypeError, Result};
1413
use std::path::PathBuf;

src/presentation/game/mod.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,5 @@ pub mod text_processor;
1212
pub mod typing_core;
1313

1414
pub use game_data::GameData;
15-
pub use models::ScreenDataProvider;
1615
pub use session_manager::{SessionConfig, SessionManager, SessionState};
1716
pub use stage_repository::{GameMode, StageConfig, StageRepository};
18-
19-
// Re-export from tui module for backward compatibility
20-
pub use crate::presentation::tui::{
21-
Screen, ScreenManager, ScreenTransition, ScreenTransitionManager, ScreenType, UpdateStrategy,
22-
};
23-
pub use crate::presentation::tui::screens::TypingScreen;
24-
pub use crate::presentation::tui::views;
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
11
pub mod loading_steps;
22

33
pub use loading_steps::*;
4-
5-
// Re-export from tui module for backward compatibility
6-
pub use crate::presentation::tui::{
7-
Screen, ScreenDataProvider, ScreenTransition, ScreenType, UpdateStrategy,
8-
};

src/presentation/game/stage_repository.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::domain::models::{Challenge, DifficultyLevel, GitRepository};
2+
use crate::presentation::game::GameData;
3+
use crate::presentation::tui::{ScreenManager, ScreenType};
24
use crate::presentation::tui::screens::TitleScreen;
3-
use crate::presentation::game::{GameData, ScreenManager, ScreenType};
45
use crate::{GitTypeError, Result};
56
use once_cell::sync::Lazy;
67
use rand::rngs::StdRng;

src/presentation/signal_handler.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use crate::infrastructure::logging::{log_error_to_file, log_panic_to_file};
22
use crate::presentation::game::events::ExitRequested;
3-
use crate::presentation::game::models::Screen;
4-
use crate::presentation::tui::screen_manager::ScreenManager;
3+
use crate::presentation::tui::{Screen, ScreenManager};
54
use crate::presentation::tui::screens::PanicScreen;
65
use crate::GitTypeError;
76
use crossterm::cursor::{Hide, Show};

src/presentation/tui/screens/analytics_screen.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::presentation::game::events::NavigateTo;
44
use crate::presentation::tui::views::analytics::{
55
LanguagesView, OverviewView, RepositoriesView, TrendsView,
66
};
7-
use crate::presentation::game::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
7+
use crate::presentation::tui::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
88
use crate::presentation::ui::Colors;
99
use crate::Result;
1010
use crossterm::event::{KeyCode, KeyModifiers};

src/presentation/tui/screens/animation_screen.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ use crate::domain::events::EventBus;
22
use crate::domain::models::{RankTier, SessionResult};
33
use crate::domain::services::scoring::Rank;
44
use crate::presentation::game::events::NavigateTo;
5+
use crate::presentation::game::SessionManager;
6+
use crate::presentation::tui::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
57
use crate::presentation::tui::views::typing::typing_animation_view::AnimationPhase;
68
use crate::presentation::tui::views::TypingAnimationView;
7-
use crate::presentation::game::{
8-
Screen, ScreenDataProvider, ScreenType, SessionManager, UpdateStrategy,
9-
};
109
use crate::presentation::ui::Colors;
1110
use crate::{GitTypeError, Result};
1211
use crossterm::event::{KeyCode, KeyModifiers};

src/presentation/tui/screens/help_screen.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::domain::events::EventBus;
22
use crate::domain::models::rank::{Rank, RankTier};
33
use crate::infrastructure::browser;
44
use crate::presentation::game::events::NavigateTo;
5-
use crate::presentation::game::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
5+
use crate::presentation::tui::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
66
use crate::presentation::ui::Colors;
77
use crate::Result;
88
use crossterm::event::{KeyCode, KeyModifiers};

src/presentation/tui/screens/info_dialog.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::domain::events::EventBus;
22
use crate::infrastructure::browser;
33
use crate::presentation::game::events::NavigateTo;
4-
use crate::presentation::game::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
4+
use crate::presentation::tui::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
55
use crate::presentation::ui::Colors;
66
use crate::Result;
77
use crossterm::event::{KeyCode, KeyModifiers};

src/presentation/tui/screens/loading_screen.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ use crate::domain::models::ExtractionOptions;
33
use crate::domain::models::{Challenge, GitRepository};
44
use crate::presentation::game::events::ExitRequested;
55
use crate::presentation::game::models::{ExecutionContext, StepManager, StepType};
6+
use crate::presentation::game::GameData;
7+
use crate::presentation::tui::{Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
68
use crate::presentation::tui::views::LoadingMainView;
7-
use crate::presentation::game::{GameData, Screen, ScreenDataProvider, ScreenType, UpdateStrategy};
89
use crate::{GitTypeError, Result};
910
use ratatui::Frame;
1011
use std::path::PathBuf;

0 commit comments

Comments
 (0)