pub type EngineResult<A> = Result<Option<(A, Event)>, Error>;
enum EngineResult<A> { Ok(Option<(A, Event)>), Err(Error), }
Contains the success value
Contains the error value