Closed
Description
Code like this in master branch:
pub struct Data {
pub value: String,
}
#[juniper::graphql_object]
impl Data {
pub fn value(&self) -> String {
self.value
}
}
#[derive(juniper::GraphQLObject)]
pub struct User {
pub username: String,
pub values: Vec<Data>,
}
Produce an error:
the trait bound `Data: juniper::types::async_await::GraphQLTypeAsync<__S>` is not satisfied
required because of the requirements on the impl of `juniper::types::async_await::GraphQLTypeAsync<__S>` for `std::vec::Vec<Data>`
required because of the requirements on the impl of `juniper::types::async_await::GraphQLTypeAsync<__S>` for `&std::vec::Vec<Data>`
`match` arms have incompatible types
expected enum `std::result::Result<juniper::value::Value<__S>, juniper::executor::FieldError<__S>>`
found enum `std::result::Result<_, juniper::executor::FieldError<juniper::value::scalar::DefaultScalarValue>>`
type parameters must be constrained to match other types
for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
But code like this works:
#[derive(juniper::GraphQLObject)]
pub struct Data {
pub value: String,
}
#[derive(juniper::GraphQLObject)]
pub struct User {
pub username: String,
pub values: Vec<Data>,
}