osu_file_parser/osu_file/colours/
error.rs1use strum_macros::{EnumString, IntoStaticStr};
2use thiserror::Error;
3
4use crate::helper::macros::verbose_error_to_error;
5
6#[derive(Debug, Error)]
7#[error(transparent)]
8pub struct ParseError(#[from] ParseColourError);
9
10#[derive(Debug, Error, EnumString, IntoStaticStr)]
12#[non_exhaustive]
13pub enum ParseColourError {
14    #[error("Invalid additive combo count")]
16    InvalidComboCount,
17    #[error("Invalid colon separator")]
19    InvalidColonSeparator,
20    #[error(transparent)]
21    #[strum(disabled)]
22    ParseRgbError(#[from] ParseRgbError),
23    #[error("Unknown colour type")]
25    UnknownColourType,
26}
27
28verbose_error_to_error!(ParseColourError);
29
30#[derive(Debug, Error, EnumString, IntoStaticStr)]
31#[non_exhaustive]
32pub enum ParseRgbError {
33    #[error("Invalid red value")]
35    InvalidRed,
36    #[error("Invalid green value")]
38    InvalidGreen,
39    #[error("Invalid blue value")]
41    InvalidBlue,
42    #[error("Missing green value")]
44    MissingGreen,
45    #[error("Missing blue value")]
47    MissingBlue,
48}
49
50verbose_error_to_error!(ParseRgbError);