qsym2/drivers/mod.rs
1//! Drivers to carry out QSym² functionalities.
2
3use anyhow;
4
5// pub mod molecule_symmetrisation;
6pub mod molecule_symmetrisation_bootstrap;
7pub mod representation_analysis;
8pub mod symmetry_group_detection;
9
10// =================
11// Trait definitions
12// =================
13
14/// Trait defining behaviours of `QSym2` drivers.
15pub trait QSym2Driver {
16 /// The type of the parameter structure controlling the driver.
17 type Params;
18
19 /// The type of the successful outcome when executing the driver.
20 type Outcome;
21
22 /// Executes the driver and stores the result internally.
23 fn run(&mut self) -> Result<(), anyhow::Error>;
24
25 /// Returns the result of the driver execution.
26 fn result(&self) -> Result<&Self::Outcome, anyhow::Error>;
27}