sbatch_rs/sbatch_option/
mod.rs

1mod display;
2mod validate;
3
4use thiserror::Error;
5
6/// Represents an sbatch option
7///
8/// For a full description of the sbatch options, see the slurm documentation: <https://slurm.schedmd.com/sbatch.html>
9/// The `SbatchOption` enum variants store Nothing, `String`, or Option<`String`> where appropriate.
10/// For more complex options, such as `--dependency`, the helper `Dependency` struct can be used to format the string.
11#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
12pub enum SbatchOption {
13    Account(String),
14    AcctgFreq(String),
15    Array(String),
16    Batch(String),
17    Bb(String),
18    Bbf(String),
19    Begin(String),
20    Chdir(String),
21    ClusterConstraint(String),
22    Clusters(String),
23    Comment(String),
24    Constraint(String),
25    Container(String),
26    ContainerID(String),
27    Contiguous,
28    CoreSpec(String),
29    CoresPerSocket(String),
30    CPUFreq(String),
31    CPUsPerGPU(String),
32    CPUsPerTask(String),
33    Deadline(String),
34    DelayBoot(String),
35    Dependency(String),
36    Distribution(String),
37    Error(String),
38    Exclude(String),
39    Exclusive(Option<String>),
40    Export(String),
41    ExportFile(String),
42    Extra(String),
43    ExtraNodeInfo(String),
44    GetUserEnv(Option<String>),
45    GID(String),
46    GPUBind(String),
47    GPUFreq(String),
48    GPUs(String),
49    GPUsPerNode(String),
50    GPUsPerSocket(String),
51    GPUsPerTask(String),
52    Gres(String),
53    GresFlags(String),
54    Help,
55    Hint(String),
56    Hold,
57    IgnorePbs,
58    Input(String),
59    JobName(String),
60    KillOnInvalidDep(String),
61    Licenses(String),
62    MailType(String),
63    MailUser(String),
64    McsLabel(String),
65    Mem(String),
66    MemBind(String),
67    MemPerCPU(String),
68    MemPerGPU(String),
69    MinCPUs(String),
70    Network(String),
71    Nice(Option<String>),
72    NoKill(Option<String>),
73    NoRequeue,
74    NodeFile(String),
75    NodeList(String),
76    Nodes(String),
77    NTasks(String),
78    NTasksPerCore(String),
79    NTasksPerGPU(String),
80    NTasksPerNode(String),
81    NTasksPerSocket(String),
82    OOMKillStep(Option<String>),
83    OpenMode(String),
84    Output(String),
85    Overcommit,
86    Oversubscribe,
87    Parsable,
88    Partition(String),
89    Prefer(String),
90    Priority(String),
91    Profile(String),
92    Propagate(Option<String>),
93    Qos(String),
94    Quiet,
95    Reboot,
96    Requeue,
97    Reservation(String),
98    ResvPorts(Option<String>),
99    Segment(String),
100    Signal(String),
101    SocketsPerNode(String),
102    SpreadJob,
103    Stepmgr,
104    Switches(String),
105    TestOnly,
106    ThreadSpec(String),
107    ThreadsPerCore(String),
108    Time(String),
109    TimeMin(String),
110    Tmp(String),
111    TresBind(String),
112    TresPerTask(String),
113    UID(String),
114    Usage,
115    UseMinNodes,
116    Verbose,
117    Version,
118    Wait,
119    WaitAllNodes(String),
120    WCKey(String),
121    Wrap(String),
122}
123
124#[derive(Debug, Error)]
125pub enum SbatchOptionError {
126    #[error("Empty string")]
127    EmptyString,
128    #[error("Leading or trailing spaces")]
129    LeadingOrTrailingSpaces,
130}