dynamic-graphql-derive 0.10.2

Dynamic GraphQL schema macro
Documentation
---
source: derive/src/args/test_output.rs
expression: output
---
```rust
struct MutationRoot;

impl dynamic_graphql::internal::ParentType for MutationRoot {
    type Type = MutationRoot;
}
impl dynamic_graphql::internal::TypeName for MutationRoot {
    fn get_type_name() -> std::borrow::Cow<'static, str> {
        "MutationRoot".into()
    }
}
impl dynamic_graphql::internal::OutputTypeName for MutationRoot {}
impl dynamic_graphql::internal::Object for MutationRoot {}
impl<
    '__dynamic_graphql_lifetime,
> dynamic_graphql::internal::ResolveOwned<'__dynamic_graphql_lifetime> for MutationRoot {
    fn resolve_owned(
        self,
        _ctx: &dynamic_graphql::Context,
    ) -> dynamic_graphql::Result<
        Option<dynamic_graphql::FieldValue<'__dynamic_graphql_lifetime>>,
    > {
        Ok(Some(dynamic_graphql::FieldValue::owned_any(self)))
    }
}
impl<
    '__dynamic_graphql_lifetime,
> dynamic_graphql::internal::ResolveRef<'__dynamic_graphql_lifetime> for MutationRoot {
    fn resolve_ref(
        &'__dynamic_graphql_lifetime self,
        _ctx: &dynamic_graphql::Context,
    ) -> dynamic_graphql::Result<
        Option<dynamic_graphql::FieldValue<'__dynamic_graphql_lifetime>>,
    > {
        Ok(Some(dynamic_graphql::FieldValue::borrowed_any(self)))
    }
}
impl MutationRoot {}
impl dynamic_graphql::internal::Register for MutationRoot {
    fn register(
        registry: dynamic_graphql::internal::Registry,
    ) -> dynamic_graphql::internal::Registry {
        let registry = registry
            .set_mutation(
                <Self as dynamic_graphql::internal::Object>::get_object_type_name()
                    .as_ref(),
            );
        let object = dynamic_graphql::dynamic::Object::new(
            <Self as dynamic_graphql::internal::Object>::get_object_type_name().as_ref(),
        );
        registry.register_type(object)
    }
}


struct MyMutation(MutationRoot);

impl MyMutation {
    fn __registers(
        registry: dynamic_graphql::internal::Registry,
    ) -> dynamic_graphql::internal::Registry {
        registry
    }
}
impl dynamic_graphql::internal::ParentType for MyMutation {
    type Type = MutationRoot;
}
impl dynamic_graphql::internal::ExpandObject for MyMutation {
    fn get_expand_object_name() -> std::borrow::Cow<'static, str> {
        "MyMutation".into()
    }
}
impl dynamic_graphql::internal::Mutation for MyMutation {}
impl dynamic_graphql::internal::RegisterFns for MyMutation {
    const REGISTER_FNS: &'static [fn(
        registry: dynamic_graphql::internal::Registry,
    ) -> dynamic_graphql::internal::Registry] = &[MyMutation::__registers];
}


impl MyMutation {
    fn the_example() -> String {
        "field".to_string()
    }
}

impl dynamic_graphql::internal::Register for MyMutation {
    fn register(
        registry: dynamic_graphql::internal::Registry,
    ) -> dynamic_graphql::internal::Registry {
        let registry = registry.register::<String>();
        let registry = <Self as dynamic_graphql::internal::RegisterFns>::REGISTER_FNS
            .iter()
            .fold(registry, |registry, f| f(registry));
        let field = dynamic_graphql::dynamic::Field::new(
            "theExample",
            <String as dynamic_graphql::internal::GetOutputTypeRef>::get_output_type_ref(),
            |ctx| {
                dynamic_graphql::dynamic::FieldFuture::new(async move {
                    let value = MyMutation::the_example();
                    dynamic_graphql::internal::Resolve::resolve(value, &ctx)
                })
            },
        );
        let __field_0 = field;
        registry
            .update_object(
                <<Self as dynamic_graphql::internal::ParentType>::Type as dynamic_graphql::internal::Object>::get_object_type_name()
                    .as_ref(),
                <Self as dynamic_graphql::internal::ExpandObject>::get_expand_object_name()
                    .as_ref(),
                |object| {
                    let object = object.field(__field_0);
                    object
                },
            )
    }
}

```