errors.rs 877 B

123456789101112131415161718192021222324252627282930
  1. use crate::response::ServerResponse;
  2. use protobuf::ProtobufError;
  3. use std::fmt::{Formatter, Write};
  4. #[derive(Debug)]
  5. pub enum ServerError {
  6. InternalError(String),
  7. BadRequest(ServerResponse<String>),
  8. Unauthorized,
  9. }
  10. impl std::fmt::Display for ServerError {
  11. fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
  12. match self {
  13. ServerError::InternalError(_) => f.write_str("Internal Server Error"),
  14. ServerError::BadRequest(request) => {
  15. let msg = format!("Bad Request: {:?}", request);
  16. f.write_str(&msg)
  17. },
  18. ServerError::Unauthorized => f.write_str("Unauthorized"),
  19. }
  20. }
  21. }
  22. impl std::convert::From<ProtobufError> for ServerError {
  23. fn from(err: ProtobufError) -> Self {
  24. let msg = format!("{:?}", err);
  25. ServerError::InternalError(msg)
  26. }
  27. }