//! The Rush shell. pub mod env; pub mod exec; pub mod eval; use env::job; /// Attempt to execute a program, rush expression or builtin. pub fn exec (prog: impl exec::Exec) -> Result> { todo!() } pub use err::{ Error, Result, }; mod err { /// A global union type of errors produced anywhere within the Rush shell. #[derive(Debug)] pub enum Error { Io (std::io::Error) } impl From for Error { fn from (err: std::io::Error) -> Self { Error::Io (err) } } /// A less verbose way to use the [`Result`](std::result::Result) type with /// an [`Error`]. pub type Result = std::result::Result; }