Description
Is your feature request related to a problem? Please describe.
I'm always frustrated when I need to replace:
#[derive(juniper::GraphQLObject)]
struct Foo {
name: String
}
by
struct Foo {
name: String
}
#[juniper::graphql_object]
impl Foo {
fn computed(&self) -> String {
...
}
}
because I lose the nice default field accessor for name
and I have to manually add it to the impl
:
#[juniper::graphql_object]
impl Foo {
...
fn name(&self) -> &String {
&self.name
}
}
Describe the solution you'd like
I'd like for #[derive(juniper::GraphQLObject)]
and #[juniper::graphql_object]
to work together so I don't have to add the dummy accessors for every field in the impl
block.
I would imagine it is complicated to achieve this because both macros currently generate the same impl
block underneath.
Describe alternatives you've considered
I couldn't come up with any alternative to this 😿
Additional context
This is extra painful when wrapping REST interfaces which have many simple fields (like strings) and a few complex fields (references to other resources).
P.S.: juniper
is such a great crate! many thanks to all the contributors! 💯