move shared Mode to separate file

This commit is contained in:
2Shirt 2025-01-12 00:51:54 -08:00
parent 608f07d445
commit fc0b82418b
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
9 changed files with 41 additions and 23 deletions

View file

@ -17,8 +17,8 @@ use serde::{Deserialize, Serialize};
use strum::Display;
use crate::{
app::Mode,
components::popup::Type,
state::Mode,
system::{
disk::{Disk, PartitionTableType},
drivers::Driver,

View file

@ -26,7 +26,6 @@ use ratatui::{
layout::{Constraint, Direction, Layout},
prelude::Rect,
};
use serde::{Deserialize, Serialize};
use tokio::sync::mpsc;
use tracing::{debug, info};
@ -36,6 +35,7 @@ use crate::{
footer::Footer, fps::FpsCounter, left::Left, popup, right::Right, title::Title, Component,
},
config::Config,
state::Mode,
system::{
boot,
disk::{Disk, PartitionTableType},
@ -71,22 +71,6 @@ pub struct App {
tasks: Tasks,
}
#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Mode {
#[default]
ScanDisks,
InstallDrivers,
SelectDisks,
SelectTableType,
Confirm,
PreClone,
Clone,
SelectParts,
PostClone,
Done,
Failed,
}
impl App {
pub fn new(tick_rate: f64, frame_rate: f64) -> Result<Self> {
let (action_tx, action_rx) = mpsc::unbounded_channel();

View file

@ -21,7 +21,7 @@ use ratatui::{
use tokio::sync::mpsc::UnboundedSender;
use super::Component;
use crate::{action::Action, app::Mode, config::Config};
use crate::{action::Action, config::Config, state::Mode};
#[derive(Default)]
pub struct Footer {

View file

@ -25,8 +25,8 @@ use tracing::info;
use super::{popup, state::StatefulList, Component};
use crate::{
action::Action,
app::Mode,
config::Config,
state::Mode,
system::{
disk::{Disk, Partition, PartitionTableType},
drivers::{self, Driver},

View file

@ -23,7 +23,7 @@ use strum::Display;
use tokio::sync::mpsc::UnboundedSender;
use super::Component;
use crate::{action::Action, app::Mode, config::Config};
use crate::{action::Action, config::Config, state::Mode};
#[derive(Default, Debug, Clone, PartialEq, Eq, Display, Serialize, Deserialize)]
pub enum Type {

View file

@ -25,8 +25,8 @@ use tracing::info;
use super::{state::StatefulList, Component};
use crate::{
action::Action,
app::Mode,
config::Config,
state::Mode,
system::{
cpu::get_cpu_name,
disk::{Disk, Partition, PartitionTableType},

View file

@ -26,7 +26,7 @@ use ratatui::style::{Color, Modifier, Style};
use serde::{de::Deserializer, Deserialize};
use tracing::error;
use crate::{action::Action, app::Mode};
use crate::{action::Action, state::Mode};
const CONFIG: &str = include_str!("../config/config.json5");

View file

@ -26,6 +26,7 @@ mod components;
mod config;
mod errors;
mod logging;
mod state;
mod system;
mod tasks;
mod tests;

33
deja_vu/src/state.rs Normal file
View file

@ -0,0 +1,33 @@
// This file is part of Deja-vu.
//
// Deja-vu is free software: you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Deja-vu is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Deja-vu. If not, see <https://www.gnu.org/licenses/>.
//
use serde::{Deserialize, Serialize};
#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Mode {
#[default]
ScanDisks,
InstallDrivers,
SelectDisks,
SelectTableType,
Confirm,
PreClone,
Clone,
SelectParts,
PostClone,
Done,
Failed,
}