pub mod subscription;
use std::fmt;
use futures::future::{self, BoxFuture};
use crate::FieldError;
pub trait ExtractError {
type Error;
}
impl<T, E> ExtractError for Result<T, E> {
type Error = E;
}
pub fn err_fut<'ok, D, Ok, S>(msg: D) -> BoxFuture<'ok, Result<Ok, FieldError<S>>>
where
D: fmt::Display,
Ok: Send + 'ok,
S: Send + 'static,
{
Box::pin(future::err(FieldError::from(msg)))
}
pub fn err_unnamed_type<S>(name: &str) -> FieldError<S> {
FieldError::from(format!(
"Expected `{name}` type to implement `GraphQLType::name`",
))
}
pub fn err_unnamed_type_fut<'ok, Ok, S>(name: &str) -> BoxFuture<'ok, Result<Ok, FieldError<S>>>
where
Ok: Send + 'ok,
S: Send + 'static,
{
Box::pin(future::err(err_unnamed_type(name)))
}