use std::{ collections::{HashMap, HashSet}, path::PathBuf, }; use nix_json_parser::Actions; pub type Id = u64; pub enum StorePath { Downloading, Uploading, Downloaded, Uploaded, } pub enum BuildStatus { Planned, Running, Complete, Failed, } pub enum Progress { JustStarted, InputReceived, Finished, } pub enum OutputName { Out, Doc, Dev, Bin, Info, Lib, Man, Dist, Other(String), } pub enum Host { Local, Host(String), } pub struct Derivation { store_path: PathBuf, } pub struct BuildInfo { start: f64, host: Host, estimate: Option, activity_id: Id, state: BuildStatus, } pub enum DependencyState { Planned, Running, Completed, } pub struct Dependencies { deps: HashMap, } // #[derive(Default)] pub struct State { progress: Progress, } impl State { pub fn imbibe(&mut self, update: Actions) {} }