pub type Result<T> = Result<T, Error>;
Because messages are lazily validated, the return type of any method that reads a pointer field must be wrapped in a Result.
enum Result<T> { Ok(T), Err(Error), }
Contains the success value
Contains the error value