1#![allow(clippy::module_name_repetitions)]
2
3use thiserror::Error;
4
5pub use crate::{parser::ParseError, validator::ValidationError};
6
7#[derive(Error, Debug, Clone, PartialEq, Eq)]
8pub enum RRuleError {
10 #[error("RRule parsing error: {0}")]
12 ParserError(#[from] ParseError),
13 #[error("RRule validation error: {0}")]
15 ValidationError(#[from] ValidationError),
16 #[error("RRule iterator error: {0}")]
18 IterError(String),
19}
20
21impl RRuleError {
22 pub fn new_iter_err<S: AsRef<str>>(msg: S) -> Self {
24 Self::IterError(msg.as_ref().to_owned())
25 }
26}