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 new(message: impl Into<String>) -> GraphQLError
pub fn new(message: impl Into<String>) -> GraphQLError
Create a simple error with only a message.
Sourcepub fn with_code(
message: impl Into<String>,
code: impl Into<String>,
) -> GraphQLError
pub fn with_code( message: impl Into<String>, code: impl Into<String>, ) -> GraphQLError
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) -> GraphQLError
pub fn with_location(self, line: u32, column: u32) -> GraphQLError
Add a source location to this error.
Sourcepub fn with_path(self, path: Vec<Value>) -> GraphQLError
pub fn with_path(self, path: Vec<Value>) -> GraphQLError
Add a response path 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<GraphQLError, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<GraphQLError, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for GraphQLError
impl Serialize for GraphQLError
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. 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