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