```rust, ignore use clap::Parser; use clap_derive::{Parser, Subcommand}; use jupyter::{InstallAction, JupyterResult, OpenAction, StartAction, UninstallAction}; use std::path::PathBuf;
pub struct JupyterApplication {
/// Sets a custom config file
#[arg(short, long, value_name = "FILE")]
config: Option
enum JupyterCommands {
Open(Box
impl JupyterApplication { pub fn run(&self) -> JupyterResult<()> { match &self.command { JupyterCommands::Open(v) => v.run(), JupyterCommands::Start(v) => v.run(), JupyterCommands::Install(v) => v.run(), JupyterCommands::Uninstall(v) => v.run(), } } }
fn main() -> JupyterResult<()> { let app = JupyterApplication::parse(); app.run() } ```