1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
use crate::structure::GValue; use std::error::Error; use std::fmt::Display; use uuid::parser::ParseError; use websocket::WebSocketError; #[allow(clippy::large_enum_variant)] #[derive(Debug)] pub enum GremlinError { Generic(String), WebSocket(WebSocketError), Pool(r2d2::Error), WrontType(GValue), Cast(String), Json(String), Request((i16, String)), Serde(serde_json::Error), Uuid(ParseError), } impl From<WebSocketError> for GremlinError { fn from(e: WebSocketError) -> GremlinError { GremlinError::WebSocket(e) } } impl From<r2d2::Error> for GremlinError { fn from(e: r2d2::Error) -> GremlinError { GremlinError::Pool(e) } } impl From<serde_json::Error> for GremlinError { fn from(e: serde_json::Error) -> GremlinError { GremlinError::Serde(e) } } impl From<ParseError> for GremlinError { fn from(e: ParseError) -> GremlinError { GremlinError::Uuid(e) } } impl Display for GremlinError { fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::result::Result<(), std::fmt::Error> { write!(fmt, "{:?}", self) } } impl Error for GremlinError {}