Trait async_graphql::resolver_utils::ScalarType
source · pub trait ScalarType: Sized + Send {
// Required methods
fn parse(value: Value) -> InputValueResult<Self>;
fn to_value(&self) -> Value;
// Provided method
fn is_valid(_value: &Value) -> bool { ... }
}
Expand description
A GraphQL scalar.
You can implement the trait to create a custom scalar.
§Examples
use async_graphql::*;
struct MyInt(i32);
#[Scalar]
impl ScalarType for MyInt {
fn parse(value: Value) -> InputValueResult<Self> {
if let Value::Number(n) = &value {
if let Some(n) = n.as_i64() {
return Ok(MyInt(n as i32));
}
}
Err(InputValueError::expected_type(value))
}
fn to_value(&self) -> Value {
Value::Number(self.0.into())
}
}
Required Methods§
sourcefn parse(value: Value) -> InputValueResult<Self>
fn parse(value: Value) -> InputValueResult<Self>
Parse a scalar value.
Provided Methods§
Object Safety§
Implementations on Foreign Types§
source§impl ScalarType for bool
impl ScalarType for bool
The Boolean
scalar type represents true
or false
.
source§impl ScalarType for char
impl ScalarType for char
The Char
scalar type represents a unicode char.
The input and output values are a string, and there can only be one unicode
character in this string.
source§impl ScalarType for f32
impl ScalarType for f32
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
source§impl ScalarType for f64
impl ScalarType for f64
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
source§impl ScalarType for i8
impl ScalarType for i8
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for i16
impl ScalarType for i16
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for i32
impl ScalarType for i32
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for i64
impl ScalarType for i64
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for isize
impl ScalarType for isize
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for u8
impl ScalarType for u8
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for u16
impl ScalarType for u16
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for u32
impl ScalarType for u32
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for u64
impl ScalarType for u64
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for usize
impl ScalarType for usize
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for Bytes
impl ScalarType for Bytes
The Binary
scalar type represents binary data.
source§impl ScalarType for String
impl ScalarType for String
The String
scalar type represents textual data, represented as UTF-8
character sequences. The String type is most often used by GraphQL to
represent free-form human-readable text.
source§impl ScalarType for NonZeroI8
impl ScalarType for NonZeroI8
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroI16
impl ScalarType for NonZeroI16
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroI32
impl ScalarType for NonZeroI32
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroI64
impl ScalarType for NonZeroI64
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroU8
impl ScalarType for NonZeroU8
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroU16
impl ScalarType for NonZeroU16
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroU32
impl ScalarType for NonZeroU32
The Int
scalar type represents non-fractional whole numeric values.
source§impl ScalarType for NonZeroU64
impl ScalarType for NonZeroU64
The Int
scalar type represents non-fractional whole numeric values.
Implementors§
impl ScalarType for Any
The _Any
scalar is used to pass representations of entities from external
services into the root _entities
field for execution.