1use std::path::PathBuf;
2
3use anyhow::Result;
4use clap::Parser;
5
6use crate::ArgsOutput;
7
8use super::{Geometry, MapOptions, MultiPairedInput, ProbeOptions, RuntimeOptions};
9
10#[derive(Parser, Debug)]
11pub struct ArgsGex {
12 #[clap(flatten)]
13 pub input: MultiPairedInput,
14
15 #[clap(flatten)]
16 pub geometry: Geometry,
17
18 #[clap(flatten)]
19 pub gex: GexOptions,
20
21 #[clap(flatten)]
22 pub map: MapOptions,
23
24 #[clap(flatten)]
25 pub probe: ProbeOptions,
26
27 #[clap(flatten)]
28 pub runtime: RuntimeOptions,
29
30 #[clap(flatten)]
31 pub output: ArgsOutput,
32}
33impl ArgsGex {
34 pub fn validate_outdir(&self) -> Result<()> {
35 self.output.validate_outdir()
36 }
37 pub fn log_path(&self) -> PathBuf {
38 self.output.log_path()
39 }
40}
41
42#[derive(Parser, Debug)]
43#[clap(next_help_heading = "Flex GEX Options")]
44pub struct GexOptions {
45 #[clap(short = 'c', long = "gex")]
47 pub gex_filepath: String,
48
49 #[clap(short = 's', long, default_value = "18")]
51 pub spacer: usize,
52}