Trait async_graphql::resolver_utils::ScalarType[][src]

pub trait ScalarType: Sized + Send {
    fn parse(value: Value) -> InputValueResult<Self>;
fn to_value(&self) -> Value; fn is_valid(_value: &Value) -> bool { ... } }

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

fn parse(value: Value) -> InputValueResult<Self>[src]

Parse a scalar value.

fn to_value(&self) -> Value[src]

Convert the scalar to Value.

Loading content...

Provided methods

fn is_valid(_value: &Value) -> bool[src]

Checks for a valid scalar value.

Implementing this function can find incorrect input values during the verification phase, which can improve performance.

Loading content...

Implementations on Foreign Types

impl ScalarType for Value[src]

A scalar that can represent any JSON value.

impl ScalarType for bool[src]

The Boolean scalar type represents true or false.

impl ScalarType for char[src]

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.

impl ScalarType for f32[src]

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

impl ScalarType for f64[src]

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

impl ScalarType for i8[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for i16[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for i32[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for i64[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for u8[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for u16[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for u32[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for u64[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for usize[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for isize[src]

The Int scalar type represents non-fractional whole numeric values.

impl<T> ScalarType for BTreeMap<String, T> where
    T: OutputType + InputType
[src]

A scalar that can represent any JSON Object value.

impl<T> ScalarType for HashMap<String, T> where
    T: OutputType + InputType
[src]

A scalar that can represent any JSON Object value.

impl ScalarType for NonZeroI8[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroI16[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroI32[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroI64[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroU8[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroU16[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroU32[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for NonZeroU64[src]

The Int scalar type represents non-fractional whole numeric values.

impl ScalarType for String[src]

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.

impl ScalarType for ObjectId[src]

impl ScalarType for UtcDateTime[src]

impl ScalarType for Tz[src]

impl ScalarType for DateTime<FixedOffset>[src]

Implement the DateTime scalar

The input/output is a string in RFC3339 format.

impl ScalarType for DateTime<Local>[src]

Implement the DateTime scalar

The input/output is a string in RFC3339 format.

impl ScalarType for DateTime<Utc>[src]

Implement the DateTime scalar

The input/output is a string in RFC3339 format.

impl ScalarType for NaiveDate[src]

impl ScalarType for NaiveTime[src]

impl ScalarType for NaiveDateTime[src]

impl ScalarType for Url[src]

impl ScalarType for Uuid[src]

Loading content...

Implementors

impl ScalarType for Any[src]

The _Any scalar is used to pass representations of entities from external services into the root _entities field for execution.

impl ScalarType for ID[src]

impl<T: Num + Display + Send + Sync> ScalarType for StringNumber<T> where
    <T as Num>::FromStrRadixErr: Display
[src]

impl<T: DeserializeOwned + Serialize + Send + Sync> ScalarType for Json<T>[src]

A scalar that can represent any JSON value.

Loading content...