pub struct EnhancedError {
pub category: ErrorCategory,
pub message: String,
pub details: Option<String>,
pub location: Option<SourceLocation>,
pub snippet: Option<CodeSnippet>,
pub suggestions: Vec<ErrorSuggestion>,
pub path: Vec<String>,
pub extensions: Map<String, Value>,
}Expand description
Enhanced GraphQL error with rich context
Fields§
§category: ErrorCategoryError category
message: StringPrimary error message
details: Option<String>Detailed explanation
location: Option<SourceLocation>Source location
snippet: Option<CodeSnippet>Code snippet
suggestions: Vec<ErrorSuggestion>Suggestions for fixing
path: Vec<String>Path to the field that caused error
extensions: Map<String, Value>Extensions (additional metadata)
Implementations§
Source§impl EnhancedError
impl EnhancedError
pub fn new(category: ErrorCategory, message: String) -> Self
pub fn with_details(self, details: String) -> Self
pub fn with_location(self, location: SourceLocation) -> Self
pub fn with_snippet(self, snippet: CodeSnippet) -> Self
pub fn with_suggestion(self, suggestion: ErrorSuggestion) -> Self
pub fn with_path(self, path: Vec<String>) -> Self
pub fn add_extension(&mut self, key: String, value: Value)
Sourcepub fn format_user_message(&self) -> String
pub fn format_user_message(&self) -> String
Format error as a user-friendly message
Sourcepub fn to_graphql_error(&self) -> Value
pub fn to_graphql_error(&self) -> Value
Convert to GraphQL error format
Trait Implementations§
Source§impl Clone for EnhancedError
impl Clone for EnhancedError
Source§impl Debug for EnhancedError
impl Debug for EnhancedError
Source§impl<'de> Deserialize<'de> for EnhancedError
impl<'de> Deserialize<'de> for EnhancedError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for EnhancedError
impl Display for EnhancedError
Source§impl Error for EnhancedError
impl Error for EnhancedError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for EnhancedError
impl RefUnwindSafe for EnhancedError
impl Send for EnhancedError
impl Sync for EnhancedError
impl Unpin for EnhancedError
impl UnsafeUnpin for EnhancedError
impl UnwindSafe for EnhancedError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeDebug for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString. Read more