error.rs 903 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //! Error types.
  2. use core::fmt::{self, Display, Formatter};
  3. /// Number out of bounds.
  4. #[derive(Clone, Copy, Debug, Eq, PartialEq)]
  5. pub struct OutOfBoundsError;
  6. impl Display for OutOfBoundsError {
  7. fn fmt(&self, f: &mut Formatter) -> fmt::Result {
  8. f.write_str("number out of bounds")
  9. }
  10. }
  11. #[cfg(feature = "std")]
  12. impl std::error::Error for OutOfBoundsError {}
  13. /// Error parsing a number.
  14. #[derive(Clone, Copy, Debug, Eq, PartialEq)]
  15. pub enum ParseError {
  16. /// No digits in the string.
  17. NoDigits,
  18. /// Invalid digit for a given radix.
  19. InvalidDigit,
  20. }
  21. impl Display for ParseError {
  22. fn fmt(&self, f: &mut Formatter) -> fmt::Result {
  23. match self {
  24. ParseError::NoDigits => f.write_str("no digits"),
  25. ParseError::InvalidDigit => f.write_str("invalid digit"),
  26. }
  27. }
  28. }
  29. #[cfg(feature = "std")]
  30. impl std::error::Error for ParseError {}