meritrank/
errors.rs

1/// Errors that can occur in the MeritRank implementation.
2#[derive(Debug, Clone)]
3pub enum MeritRankError {
4    NodeDoesNotExist,
5    SelfReferenceNotAllowed,
6    RandomChoiceError,
7    NoPathExists,
8    NodeIdParseError,
9    NodeDoesNotCalculated,
10    InvalidWalkLength,
11    // Experimental
12    InvalidNode
13}
14
15use std::error::Error;
16use std::fmt::{Display, Formatter, Result};
17
18impl Display for MeritRankError {
19    fn fmt(&self, f: &mut Formatter<'_>) -> Result {
20        match self {
21            MeritRankError::NodeDoesNotExist => write!(f, "Node does not exist"),
22            MeritRankError::SelfReferenceNotAllowed => write!(f, "Self-reference is not allowed"),
23            MeritRankError::RandomChoiceError => write!(f, "Random choice error"),
24            MeritRankError::NoPathExists => write!(f, "No path exists"),
25            MeritRankError::NodeIdParseError => write!(f, "Node ID parse error"),
26            MeritRankError::NodeDoesNotCalculated => write!(f, "Node does not calculated"),
27            MeritRankError::InvalidWalkLength => write!(f, "Invalid walk length"),
28            MeritRankError::InvalidNode => write!(f, "Invalid node"),
29        }
30    }
31}
32
33impl Error for MeritRankError {
34    // fn source(&self) -> Option<&(dyn Error + 'static)> {
35    //     match self {
36    //         MeritRankError::NodeDoesNotExist => None,
37    //         MeritRankError::SelfReferenceNotAllowed => None,
38    //         MeritRankError::RandomChoiceError => None,
39    //         MeritRankError::NoPathExists => None,
40    //         MeritRankError::NodeIdParseError => None,
41    //     }
42    // }
43}