psyche_core/
error.rs

1use crate::effector::EffectorID;
2use crate::neuron::NeuronID;
3use crate::sensor::SensorID;
4use std::io::Error as IoError;
5use std::result::Result as StdResult;
6
7#[derive(Debug)]
8pub enum Error {
9    Simple(SimpleError),
10    NeuronDoesNotExists(NeuronID),
11    BindingNeuronToItSelf(NeuronID),
12    UnbindingNeuronFromItSelf(NeuronID),
13    SensorDoesNotExists(SensorID),
14    EffectorDoesNotExists(EffectorID),
15    BindingNeuronToSensor(NeuronID, SensorID),
16    BindingEffectorToNeuron(EffectorID, NeuronID),
17    NeuronIsAlreadyConnectedToSensor(NeuronID, SensorID),
18    NeuronIsAlreadyConnectedToEffector(NeuronID, EffectorID),
19}
20
21impl Error {
22    #[inline]
23    pub fn simple(message: String) -> Self {
24        Error::Simple(SimpleError { message })
25    }
26}
27
28#[derive(Debug)]
29pub struct SimpleError {
30    pub message: String,
31}
32
33pub type Result<T> = StdResult<T, Error>;
34
35impl From<IoError> for Error {
36    fn from(error: IoError) -> Self {
37        Self::simple(format!("{}", error))
38    }
39}