#[non_exhaustive]pub enum ErrorKind {
Show 24 variants
Failure,
OutOfMemory,
Parse,
InvalidValue,
Exists,
InvalidVertexId,
InvalidEdgeId,
InvalidMode,
File,
Unimplemented,
Interrupted,
Diverged,
Arpack,
NegativeCycle,
Internal,
AttributeCombination,
Overflow,
Underflow,
RandomWalkStuck,
Stop,
Range,
NoSolution,
Other(u32),
CallbackPanic,
}Expand description
The kind of an igraph error, mirroring the C enumeration
igraph_error_type_t.
The error codes removed in igraph 1.0 (IGRAPH_EINVEVECTOR,
IGRAPH_NONSQUARE, IGRAPH_EDIVZERO, IGRAPH_EATTRIBUTES,
IGRAPH_ELAPACK, IGRAPH_EDRL, IGRAPH_EGLP and the IGRAPH_GLP_*
codes, IGRAPH_CPUTIME) have no variant, nor do the ARPACK-specific codes
that 1.0 moved to igraph_arpack_error_t; an unknown code maps to
ErrorKind::Other. Code 8, IGRAPH_NONSQUARE before 1.0, is now
IGRAPH_EINVEID (ErrorKind::InvalidEdgeId).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Failure
Generic failure (IGRAPH_FAILURE).
OutOfMemory
Out of memory (IGRAPH_ENOMEM).
Parse
Parse error while reading a file (IGRAPH_PARSEERROR).
InvalidValue
Invalid value, argument or combination of arguments (IGRAPH_EINVAL).
Exists
Object already exists (IGRAPH_EXISTS).
InvalidVertexId
Invalid vertex id (IGRAPH_EINVVID).
InvalidEdgeId
Invalid edge id (IGRAPH_EINVEID).
InvalidMode
Invalid neighbor mode (IGRAPH_EINVMODE).
File
File operation failed (IGRAPH_EFILE).
Unimplemented
Functionality not implemented (IGRAPH_UNIMPLEMENTED).
Interrupted
Computation interrupted, e.g. by a callback (IGRAPH_INTERRUPTED).
Diverged
Numeric procedure did not converge (IGRAPH_DIVERGED).
Arpack
ARPACK error (IGRAPH_EARPACK).
NegativeCycle
Negative cycle detected in shortest path computation (IGRAPH_ENEGCYCLE).
Internal
Internal igraph error, likely a bug (IGRAPH_EINTERNAL).
AttributeCombination
Attribute combination error (IGRAPH_EATTRCOMBINE).
Overflow
Integer or double overflow (IGRAPH_EOVERFLOW).
Underflow
Integer or double underflow (IGRAPH_EUNDERFLOW).
RandomWalkStuck
A random walk got stuck (IGRAPH_ERWSTUCK).
Stop
Stop requested, e.g. by a callback (IGRAPH_STOP).
Range
Maximum vertex or edge count exceeded (IGRAPH_ERANGE).
NoSolution
The input problem has no solution (IGRAPH_ENOSOL).
Other(u32)
An error code not known to this version of the bindings.
CallbackPanic
A Rust callback panicked while igraph was running; the panic is
resumed by the wrapper, so this kind is only observable in catch_unwind.
Implementations§
Source§impl ErrorKind
impl ErrorKind
Sourcepub fn from_raw(code: igraph_error_t) -> Self
pub fn from_raw(code: igraph_error_t) -> Self
Maps a raw igraph error code to an ErrorKind.
Sourcepub fn to_raw(self) -> igraph_error_t
pub fn to_raw(self) -> igraph_error_t
The raw igraph error code corresponding to this kind (the inverse of
from_raw).
ErrorKind::CallbackPanic maps to IGRAPH_INTERRUPTED, the code
returned to igraph when a Rust callback panics.
use igraph::prelude::*;
for kind in [ErrorKind::InvalidValue, ErrorKind::Parse, ErrorKind::Stop] {
assert_eq!(ErrorKind::from_raw(kind.to_raw()), kind);
}Sourcepub fn description(self) -> String
pub fn description(self) -> String
igraph’s textual description of this kind of error
(igraph_strerror),
e.g. "Invalid value" for ErrorKind::InvalidValue.