Skip to main content

entrenar/config/cli/research/
mod.rs

1//! Research command types for academic workflows
2
3mod bundle;
4mod cite;
5mod deposit;
6mod export;
7mod init;
8mod preregister;
9mod verify;
10
11#[cfg(test)]
12mod tests;
13
14use clap::{Parser, Subcommand};
15
16// Re-export all public types
17pub use bundle::BundleArgs;
18pub use cite::CiteArgs;
19pub use deposit::DepositArgs;
20pub use export::ExportArgs;
21pub use init::ResearchInitArgs;
22pub use preregister::PreregisterArgs;
23pub use verify::VerifyArgs;
24
25/// Arguments for the research command
26#[derive(Parser, Debug, Clone, PartialEq)]
27pub struct ResearchArgs {
28    /// Research subcommand to execute
29    #[command(subcommand)]
30    pub command: ResearchCommand,
31}
32
33/// Research subcommands
34#[derive(Subcommand, Debug, Clone, PartialEq)]
35pub enum ResearchCommand {
36    /// Initialize a new research artifact
37    Init(ResearchInitArgs),
38
39    /// Create a pre-registration with cryptographic commitment
40    Preregister(PreregisterArgs),
41
42    /// Generate citations in various formats
43    Cite(CiteArgs),
44
45    /// Export artifacts to various formats
46    Export(ExportArgs),
47
48    /// Deposit to academic archives
49    Deposit(DepositArgs),
50
51    /// Bundle artifacts into RO-Crate package
52    Bundle(BundleArgs),
53
54    /// Verify pre-registration commitments or signatures
55    Verify(VerifyArgs),
56}