#![allow(dead_code, unused_variables, unused_imports)] #[macro_use] extern crate juniper; use juniper::*; use juniper_from_schema::graphql_schema; graphql_schema! { schema { query: Query mutation: Mutation } type Mutation { createPost(input: CreatePost!): Post @juniper(ownership: "owned") } input CreatePost { title: String! } type Post { id: ID! title: String! } type Query { noop: Boolean! } } fn main() {} pub struct Context; impl juniper::Context for Context {} pub struct Post { id: ID, } impl PostFields for Post { fn field_id(&self, executor: &Executor<'_, Context>) -> FieldResult<&ID> { unimplemented!() } fn field_title(&self, executor: &Executor<'_, Context>) -> FieldResult<&String> { unimplemented!() } } pub struct Query; impl QueryFields for Query { fn field_noop(&self, executor: &Executor<'_, Context>) -> FieldResult<&bool> { unimplemented!() } } pub struct Mutation; impl MutationFields for Mutation { fn field_create_post( &self, executor: &Executor<'_, Context>, trail: &QueryTrail<'_, Post, Walked>, input: CreatePost, ) -> FieldResult> { let title: String = input.title; unimplemented!() } }