// 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 . // use std::sync::{Arc, Mutex}; use serde::{Deserialize, Serialize}; use crate::system::{ disk::{Disk, PartitionTableType}, drivers::Driver, }; #[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, } #[derive(Debug, Default)] pub struct CloneSettings { pub disk_index_dest: Option, pub disk_index_source: Option, pub disk_list: Arc>>, pub part_index_boot: Option, pub part_index_os: Option, pub driver: Option, pub table_type: Option, } impl CloneSettings { pub fn new(disk_list: Arc>>) -> Self { CloneSettings { disk_list, ..Default::default() } } }