From c1df3ba8ad4f3e0db4579b5531f627ef0605cfed Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Sat, 12 Oct 2024 17:21:34 +0200 Subject: [PATCH] refactor: move `Interactor<...>` and friends to new module dir, `interactor` --- src/bin/topola-egui/main.rs | 3 --- src/bin/topola-egui/menu_bar.rs | 6 ++++-- src/bin/topola-egui/status_bar.rs | 4 +++- src/bin/topola-egui/workspace.rs | 15 ++++++--------- src/{bin/topola-egui => interactor}/activity.rs | 6 +++--- .../topola-egui => interactor}/interaction.rs | 3 ++- src/{bin/topola-egui => interactor}/interactor.rs | 14 +++++++------- src/interactor/mod.rs | 5 +++++ src/lib.rs | 1 + 9 files changed, 31 insertions(+), 26 deletions(-) rename src/{bin/topola-egui => interactor}/activity.rs (98%) rename src/{bin/topola-egui => interactor}/interaction.rs (99%) rename src/{bin/topola-egui => interactor}/interactor.rs (92%) create mode 100644 src/interactor/mod.rs diff --git a/src/bin/topola-egui/main.rs b/src/bin/topola-egui/main.rs index 89025a4..061be79 100644 --- a/src/bin/topola-egui/main.rs +++ b/src/bin/topola-egui/main.rs @@ -1,12 +1,9 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release mod action; -mod activity; mod app; mod config; mod error_dialog; -mod interaction; -mod interactor; mod layers; mod menu_bar; mod overlay; diff --git a/src/bin/topola-egui/menu_bar.rs b/src/bin/topola-egui/menu_bar.rs index 2c1e5f0..9440e19 100644 --- a/src/bin/topola-egui/menu_bar.rs +++ b/src/bin/topola-egui/menu_bar.rs @@ -4,6 +4,10 @@ use topola::{ autorouter::{ execution::Command, invoker::InvokerError, selection::Selection, AutorouterOptions, }, + interactor::{ + activity::{ActivityContext, ActivityStepperWithStatus}, + interaction::InteractionContext, + }, router::RouterOptions, specctra::design::{LoadingError as SpecctraLoadingError, SpecctraDesign}, stepper::Abort, @@ -11,9 +15,7 @@ use topola::{ use crate::{ action::{Action, Switch, Trigger}, - activity::{ActivityContext, ActivityStepperWithStatus}, app::{execute, handle_file}, - interaction::InteractionContext, translator::Translator, viewport::Viewport, workspace::Workspace, diff --git a/src/bin/topola-egui/status_bar.rs b/src/bin/topola-egui/status_bar.rs index a1f318d..9e78116 100644 --- a/src/bin/topola-egui/status_bar.rs +++ b/src/bin/topola-egui/status_bar.rs @@ -1,6 +1,8 @@ use std::ops::ControlFlow; -use crate::{activity::ActivityStepperWithStatus, translator::Translator, viewport::Viewport}; +use topola::interactor::activity::ActivityStepperWithStatus; + +use crate::{translator::Translator, viewport::Viewport}; pub struct StatusBar {} diff --git a/src/bin/topola-egui/workspace.rs b/src/bin/topola-egui/workspace.rs index f83dfb5..5a07372 100644 --- a/src/bin/topola-egui/workspace.rs +++ b/src/bin/topola-egui/workspace.rs @@ -5,19 +5,16 @@ use std::{ use topola::{ autorouter::{history::History, invoker::Invoker, Autorouter}, + interactor::{ + activity::{ActivityContext, ActivityStepperWithStatus}, + interaction::InteractionContext, + Interactor, + }, specctra::{design::SpecctraDesign, mesadata::SpecctraMesadata}, stepper::Step, }; -use crate::{ - activity::{ActivityContext, ActivityStepperWithStatus}, - error_dialog::ErrorDialog, - interaction::InteractionContext, - interactor::Interactor, - layers::Layers, - overlay::Overlay, - translator::Translator, -}; +use crate::{error_dialog::ErrorDialog, layers::Layers, overlay::Overlay, translator::Translator}; /// A loaded design and associated structures pub struct Workspace { diff --git a/src/bin/topola-egui/activity.rs b/src/interactor/activity.rs similarity index 98% rename from src/bin/topola-egui/activity.rs rename to src/interactor/activity.rs index 2b809f7..ad1b65b 100644 --- a/src/bin/topola-egui/activity.rs +++ b/src/interactor/activity.rs @@ -1,7 +1,8 @@ use std::ops::ControlFlow; use thiserror::Error; -use topola::{ + +use crate::{ autorouter::{ execution::ExecutionStepper, invoker::{ @@ -11,12 +12,11 @@ use topola::{ board::mesadata::AccessMesadata, drawing::graph::PrimitiveIndex, geometry::primitive::PrimitiveShape, + interactor::interaction::{InteractionContext, InteractionError, InteractionStepper}, router::{navcord::NavcordStepper, navmesh::Navmesh}, stepper::{Abort, Step}, }; -use crate::interaction::{InteractionContext, InteractionError, InteractionStepper}; - pub struct ActivityContext<'a, M: AccessMesadata> { pub interaction: InteractionContext, pub invoker: &'a mut Invoker, diff --git a/src/bin/topola-egui/interaction.rs b/src/interactor/interaction.rs similarity index 99% rename from src/bin/topola-egui/interaction.rs rename to src/interactor/interaction.rs index 42bfe29..5e8d9dd 100644 --- a/src/bin/topola-egui/interaction.rs +++ b/src/interactor/interaction.rs @@ -1,7 +1,8 @@ use std::ops::ControlFlow; use thiserror::Error; -use topola::{ + +use crate::{ autorouter::invoker::{GetGhosts, GetMaybeNavcord, GetMaybeNavmesh, GetObstacles}, drawing::graph::PrimitiveIndex, geometry::primitive::PrimitiveShape, diff --git a/src/bin/topola-egui/interactor.rs b/src/interactor/interactor.rs similarity index 92% rename from src/bin/topola-egui/interactor.rs rename to src/interactor/interactor.rs index b06ec93..2c0f372 100644 --- a/src/bin/topola-egui/interactor.rs +++ b/src/interactor/interactor.rs @@ -1,22 +1,22 @@ use std::ops::ControlFlow; use spade::InsertionError; -use topola::{ + +use crate::{ autorouter::{ - execution::{Command, ExecutionStepper}, + execution::Command, history::History, invoker::{Invoker, InvokerError}, Autorouter, }, board::{mesadata::AccessMesadata, Board}, + interactor::{ + activity::{ActivityContext, ActivityError, ActivityStepperWithStatus}, + interaction::InteractionContext, + }, stepper::{Abort, Step}, }; -use crate::{ - activity::{ActivityContext, ActivityError, ActivityStepperWithStatus}, - interaction::InteractionContext, -}; - pub struct Interactor { invoker: Invoker, activity: Option, diff --git a/src/interactor/mod.rs b/src/interactor/mod.rs new file mode 100644 index 0000000..d678453 --- /dev/null +++ b/src/interactor/mod.rs @@ -0,0 +1,5 @@ +pub mod activity; +pub mod interaction; +mod interactor; + +pub use interactor::*; diff --git a/src/lib.rs b/src/lib.rs index 367b735..7a4282f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,6 +12,7 @@ pub mod drawing; pub mod autorouter; pub mod board; pub mod geometry; +pub mod interactor; pub mod layout; pub mod math; pub mod router;