// hpstat: High-performance statistics implementations // Copyright © 2023 Lee Yingtong Li (RunasSudo) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . use clap::{Parser, Subcommand}; use hpstat::intcox; use hpstat::turnbull; #[derive(Parser)] #[command(about="High-performance statistics implementations")] struct MainArgs { #[clap(subcommand)] command: Command, } #[derive(Subcommand)] enum Command { #[command(name="intcox", about="Interval-censored Cox regression", long_about="Fit a Cox proportional hazards model on time-independent interval-censored observations")] IntCox(intcox::IntCoxArgs), #[command(name="turnbull", about="Interval-censored Turnbull survival estimation", long_about="Fit a Turnbull survival estimator on interval-censored observations")] Turnbull(turnbull::TurnbullArgs), } fn main() { let args = MainArgs::parse(); match args.command { Command::IntCox(intcox_args) => intcox::main(intcox_args), Command::Turnbull(turnbull_args) => turnbull::main(turnbull_args), } }