use crate::collection::Vector;
use alloc::{boxed::Box, string::String};
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[cfg_attr(feature = "serde", serde(untagged))]
#[derive(Debug)]
pub enum GraphQlPathSegment {
Field(Box<str>),
Index(i32),
}
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[derive(Debug)]
pub struct GraphQlLocation {
pub column: i32,
pub line: i32,
}
#[derive(Debug)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub struct GraphQlResponseError<E> {
pub extensions: Option<E>,
pub locations: Option<Vector<GraphQlLocation>>,
pub message: String,
pub path: Option<Vector<GraphQlPathSegment>>,
}