* Update compile fail tests for latest Rust
The messages appear to have changed on nightly
* Fix tests depending on fixture data
* Fix more integration test paths
* Fix doc warnings
- generate always `::juniper::` crate path in proc macros and use `extern crate self` to make it work inside `juniper`
- add optional non-documented `internal` proc macro argument to proc macros, which allows double-underscored names and is used inside `juniper` only
- add object safe GraphQLValue, GraphQLValueAsync and GraphQLSubscriptionValue traits containing methods for value resolution
- refactor GraphQLType, GraphQLTypeAsync and GraphQLSubscriptionType traits to register and provide GraphQL type information only
- make GraphQLUnion trait generic over ScalarValue
- generate generic over ScalarValue impls of GraphQLUnion trait
- add codegen tests with a custom ScalarValue for union macros
- reimplement #[derive(GraphQLUnion)] macro to support:
- both structs and enums
- generics in type definition
- multiple #[graphql] attributes
- external resolver functions
- remove From trait impls generation for enum variants
- reimplement #[graphql_union] macro to support:
- traits
- generics in trait definition
- multiple attributes
- external resolver functions
- GraphQLType implemetation for a raw trait object
- GraphQLTypeAsync implemetation (#549)
- add marker::GraphQLUnion trait
- rewrite "2.5 Unions" section in Book (Juniper user documentation)
- rewrite `codegen` and `codegen_fail` integration tests for GraphQL unions
Additionally:
- re-export `futures` crate in `juniper` for convenient reuse in the generated code without requiring library user to provide `futures` crate by himself (#663)
- use unit type () as default context for EmptyMutation and EmptySubscriptions
- relax Sized trait bound on some GraphQLType and GraphQLTypeAsync definitions, implementations and usages
* Relax Default impl constraint
For EmptyMutation and EmptySubscription. The built-in derive
expects `T: Default`, which is not necessary for a PhantomData
wrapper.
* Add test
* Improve lookahead visibility for aliased fields
- Add a method to access the children of look ahead structs
- Make the behaviour around accessing aliased lookahead fields more consistent
* Deprecate old Lookahead methods for accessing child selections
* Support 'application/graphql' POST requests for 'juniper_warp'
* Add integration tests for 'application/graphql' POST requests and revive HttpIntegration test suite for 'juniper_warp'
* Support 'application/graphql' POST requests for 'juniper_hyper' and run its tests for both sync and async versions
* Run integration tests for both sync and async versions of 'juniper_warp' and update its CHANGELOG
* Support 'application/graphql' POST requests for 'juniper_iron'
* Fix 'application/graphql' POST requests support for 'juniper_actix'
* Support 'application/graphql' POST requests in 'juniper_rocket' and 'juniper_rocket_async'
* Upd juniper's CHANGELOG