Struct async_graphql::dynamic::InputObject
source · pub struct InputObject { /* private fields */ }
Available on crate feature
dynamic-schema
only.Expand description
A GraphQL input object type
Examples
use async_graphql::{dynamic::*, value, Value};
let my_input = InputObject::new("MyInput")
.field(InputValue::new("a", TypeRef::INT.non_null()))
.field(InputValue::new("b", TypeRef::INT.non_null()));
let query = Object::new("Query").field(
Field::new("add", TypeRef::INT, |ctx| {
FieldFuture::new(async move {
let input = ctx.args.try_get("input")?;
let input = input.object()?;
let a = input.try_get("a")?.i64()?;
let b = input.try_get("b")?.i64()?;
Ok(Some(Value::from(a + b)))
})
})
.argument(InputValue::new("input", my_input.type_ref()))
);
let schema = Schema::build(query.type_name(), None, None)
.register(my_input)
.register(query)
.finish()?;
assert_eq!(
schema
.execute("{ add(input: { a: 10, b: 20 }) }")
.await
.into_result()
.unwrap()
.data,
value!({ "add": 30 })
);
Implementations
sourceimpl InputObject
impl InputObject
sourcepub fn description(self, description: impl Into<String>) -> Self
pub fn description(self, description: impl Into<String>) -> Self
Set the description
sourcepub fn field(self, field: InputValue) -> Self
pub fn field(self, field: InputValue) -> Self
Add a field
sourcepub fn type_ref(&self) -> NamedTypeRefBuilder
pub fn type_ref(&self) -> NamedTypeRefBuilder
Returns the type reference
Trait Implementations
sourceimpl Debug for InputObject
impl Debug for InputObject
sourceimpl From<InputObject> for Type
impl From<InputObject> for Type
sourcefn from(obj: InputObject) -> Self
fn from(obj: InputObject) -> Self
Converts to this type from the input type.
Auto Trait Implementations
impl RefUnwindSafe for InputObject
impl Send for InputObject
impl Sync for InputObject
impl Unpin for InputObject
impl UnwindSafe for InputObject
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more