starfall/astronomy/star/error/
mod.rs

1/// Star-related errors.
2#[derive(Clone, Copy, Debug, Eq, Error, Hash, PartialEq)]
3pub enum Error {
4  /// Lower than MAIN_SEQUENCE_STAR_MASS_LOWER_BOUND.
5  #[error("its mass is too low to be a main-sequence star")]
6  MassTooLowForMainSequence,
7  /// Higher than MAIN_SEQUENCE_STAR_MASS_UPPER_BOUND.
8  #[error("its mass is too high to be a main-sequence star")]
9  MassTooHighForMainSequence,
10  /// Lower than MINIMUM_STAR_AGE_TO_SUPPORT_LIFE.
11  #[error("it is too young to support life")]
12  TooYoungToSupportLife,
13  /// Lower than MINIMUM_STAR_MASS_TO_SUPPORT_LIFE.
14  #[error("its mass is too low to support life")]
15  MassTooLowToSupportLife,
16  /// Higher than MAXIMUM_STAR_MASS_TO_SUPPORT_LIFE.
17  #[error("its mass is too high to support life")]
18  MassTooHighToSupportLife,
19  /// An unknown error occurred.
20  #[error("an unknown error occurred")]
21  UnknownError,
22}
23
24honeyholt_define_brief!(Error, |error: &Error| {
25  use Error::*;
26  match error {
27    MassTooLowForMainSequence => "its mass is too low to be a main-sequence star".to_string(),
28    MassTooHighForMainSequence => "its mass is too high to be a main-sequence star".to_string(),
29    TooYoungToSupportLife => "it is too young to support life".to_string(),
30    MassTooLowToSupportLife => "its mass is too low to support life".to_string(),
31    MassTooHighToSupportLife => "its mass is too high to support life".to_string(),
32    UnknownError => "an unknown error occurred".to_string(),
33  }
34});