Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::{DlsiteError, Result};

pub(crate) trait ToParseError<T> {
    fn to_parse_error(self, msg: &str) -> Result<T>;
}

impl<T> ToParseError<T> for Option<T> {
    fn to_parse_error(self, msg: &str) -> Result<T> {
        self.ok_or_else(|| DlsiteError::ParseError(msg.to_string()))
    }
}

impl<T, E> ToParseError<T> for std::result::Result<T, E> {
    fn to_parse_error(self, msg: &str) -> Result<T> {
        self.map_err(|_| DlsiteError::ParseError(msg.to_string()))
    }
}