2022-04-08 17:44:50 +03:00
`juniper_codegen` changelog
===========================
All user visible changes to `juniper_codegen` crate will be documented in this file. This project uses [Semantic Versioning 2.0.0].
2024-03-20 17:06:24 +02:00
## [0.16.0] · 2024-03-20
[0.16.0]: /../../tree/juniper_codegen-v0.16.0/juniper_codegen
2022-04-08 17:44:50 +03:00
### BC Breaks
2024-01-30 16:41:11 +01:00
- `#[graphql_object]` and `#[graphql_subscription]` expansions now preserve defined `impl` blocks "as is" and reuse defined methods in opaque way. ([#971 ], [#1245 ])
2022-04-08 17:44:50 +03:00
- Renamed `rename = "<policy>"` attribute argument to `rename_all = "<policy>"` (following `serde` style). ([#971 ])
- Redesigned `#[graphql_interface]` macro: ([#1009 ])
- Removed support for `dyn` attribute argument (interface values as trait objects).
- Removed support for `downcast` attribute argument (custom resolution into implementer types).
- Removed support for `async` trait methods (not required anymore).
2022-07-26 11:42:44 +03:00
- Removed necessity of writing `impl Trait for Type` blocks (interfaces are implemented just by matching their fields now). ([#113 ])
2022-04-08 17:44:50 +03:00
- Forbade default implementations of non-ignored trait methods.
- Supported coercion of additional `null` able arguments and return sub-typing on implementer.
- Supported `rename_all = "<policy>"` attribute argument influencing all its fields and their arguments. ([#971 ])
2022-07-26 11:42:44 +03:00
- Supported interfaces implementing other interfaces. ([#1028 ])
2022-04-08 17:44:50 +03:00
- Split `#[derive(GraphQLScalarValue)]` macro into:
- `#[derive(GraphQLScalar)]` for implementing GraphQL scalar: ([#1017 ])
- Supported generic `ScalarValue` .
- Supported structs with single named field.
- Supported overriding resolvers with external functions, methods or modules.
- Supported `specified_by_url` attribute argument. ([#1003 ], [#1000 ])
- `#[derive(ScalarValue)]` for implementing `ScalarValue` trait: ([#1025 ])
- Removed `Serialize` implementation (now should be provided explicitly). ([#985 ])
- Redesigned `#[graphql_scalar]` macro: ([#1014 ])
- Changed `from_input_value()` return type from `Option` to `Result` . ([#987 ])
- Mirrored new `#[derive(GraphQLScalar)]` macro.
- Supported usage on type aliases in case `#[derive(GraphQLScalar)]` isn't applicable because of [orphan rules].
### Added
- `#[derive(GraphQLInterface)]` macro allowing using structs as GraphQL interfaces. ([#1026 ])
2023-11-01 19:00:05 +01:00
### Changed
- Migrated to 2 version of `syn` crate. ([#1157 ])
2022-04-13 20:15:50 +07:00
### Fixed
- All procedural macros expansion inside `macro_rules!` . ([#1054 ], [#1051 ])
2022-07-26 11:42:44 +03:00
[#113 ]: /../../issues/113
2022-04-08 17:44:50 +03:00
[#971 ]: /../../pull/971
[#985 ]: /../../pull/985
[#987 ]: /../../pull/987
[#1000 ]: /../../issues/1000
[#1003 ]: /../../pull/1003
[#1009 ]: /../../pull/1009
[#1014 ]: /../../pull/1014
[#1017 ]: /../../pull/1017
[#1025 ]: /../../pull/1025
[#1026 ]: /../../pull/1026
2022-07-26 11:42:44 +03:00
[#1028 ]: /../../pull/1028
2022-04-13 20:15:50 +07:00
[#1051 ]: /../../issues/1051
[#1054 ]: /../../pull/1054
2023-11-01 19:00:05 +01:00
[#1157 ]: /../../pull/1157
2024-01-30 16:41:11 +01:00
[#1245 ]: /../../pull/1245
2022-04-08 17:44:50 +03:00
[orphan rules]: https://doc.rust-lang.org/reference/items/implementations.html#orphan -rules
[Semantic Versioning 2.0.0]: https://semver.org