Skip to main content

fx_durable_ga/services/optimization/
errors.rs

1use crate::services::lock;
2use crate::{
3    models::SelectionError,
4    repositories::{genotypes, morphologies, requests},
5};
6
7/// Errors that can occur during optimization operations.
8#[derive(Debug, thiserror::Error)]
9pub enum Error {
10    #[error("RequestsRepositoryError: {0}")]
11    RequestsRepositoryError(#[from] requests::Error),
12    #[error("MorphologiesRepositoryError: {0}")]
13    MorphologiesRepositoryError(#[from] morphologies::Error),
14    #[error("GenotypesRepositoryError: {0}")]
15    GenotypesRepositoryError(#[from] genotypes::Error),
16    #[error("UnknownType: type_name={type_name}, type_hash={type_hash}")]
17    UnknownTypeError { type_hash: i32, type_name: String },
18    #[error("EvaluationError: {0}")]
19    EvaluationError(#[from] anyhow::Error),
20    #[error("Selection error: {0}")]
21    SelectionError(#[from] SelectionError),
22    #[error("Lock error: {0}")]
23    LockError(#[from] lock::Error),
24    #[error("Unknownn phenotype")]
25    UnknownPhenotype { type_name: String, type_hash: i32 },
26}