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);