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}