pub struct GraphQLError {
pub message: String,
pub locations: Option<Vec<GraphQLErrorLocation>>,
pub path: Option<Vec<Value>>,
pub extensions: Option<HashMap<String, Value>>,
}Expand description
A GraphQL protocol-level error as defined in the GraphQL specification §7.1.2.
This is the canonical wire format used by:
WebSocketsubscription protocol (graphql-wsv5+)errormessages- HTTP GraphQL response
errorsarray - Federation subgraph HTTP responses
Crates that need HTTP-layer concerns (error codes, status codes, sanitization) build on top of this type rather than replacing it.
Fields§
§message: StringHuman-readable error message.
locations: Option<Vec<GraphQLErrorLocation>>Locations in the query document where the error occurred.
path: Option<Vec<Value>>Path into the response data where the error occurred.
Elements are either string field names or integer list indices.
extensions: Option<HashMap<String, Value>>Arbitrary extension data (error codes, categories, etc.).
Implementations§
Source§impl GraphQLError
impl GraphQLError
Sourcepub fn with_code(message: impl Into<String>, code: impl Into<String>) -> Self
pub fn with_code(message: impl Into<String>, code: impl Into<String>) -> Self
Create an error with a string extension code.
This is the conventional way to attach a machine-readable error code:
use fraiseql_error::GraphQLError;
let err = GraphQLError::with_code("Subscription not found", "SUBSCRIPTION_NOT_FOUND");Sourcepub fn with_location(self, line: u32, column: u32) -> Self
pub fn with_location(self, line: u32, column: u32) -> Self
Add a source location to this error.
Trait Implementations§
Source§impl Clone for GraphQLError
impl Clone for GraphQLError
Source§fn clone(&self) -> GraphQLError
fn clone(&self) -> GraphQLError
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GraphQLError
impl Debug for GraphQLError
Source§impl<'de> Deserialize<'de> for GraphQLError
impl<'de> Deserialize<'de> for GraphQLError
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
Auto Trait Implementations§
impl Freeze for GraphQLError
impl RefUnwindSafe for GraphQLError
impl Send for GraphQLError
impl Sync for GraphQLError
impl Unpin for GraphQLError
impl UnsafeUnpin for GraphQLError
impl UnwindSafe for GraphQLError
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more