Releases: contextgeneric/cgp
v0.6.0
v0.5.0
Read the announcement blog post
Changelog
-
Monadic computation support
-
Extensible data types improvements
- Add generalized field transformation on partial records to support building with default values. - #128
- Add
CanFinalizeWithDefaultmethod for partial records - #130 - Extensible Visitor Improvements - #132
- Add support for passing additional arguments to extensible visitors - #134
- Add extensible visitor support mutable partial variants - #135
- Introduce
UpdateFieldtrait to generalize field transformation in partial data - #148 - Add optional field builder constructs for extensible records - #152
- Introduce
#[derive(CgpData)]and#[derive(CgpRecord)]Macros - #154 - Add
__prefix to Partial data types generated - #156 - Implement ref variants of matcher providers - #161
-
Handler improvements
-
Dispatch macro
-
Component system improvements
- Allow only provider name to be specified inside
#[cgp_getter]- #143 - Support use of lifetime parameters inside CGP traits - #145
- Add
?Sizedbound toDelegateComponent'sNameparameter - #147 - Allow shortcut definition of provider name in
#[cgp_type]- #163 - Fix use of
newindelegate_components!when keys array are used - #164 - Add
Lifetype to represent lifetimes as types - #166
- Allow only provider name to be specified inside
-
Field improvements
-
Symbol improvements
-
Breaking changes toward stabilization
v0.4.2
Changelog
-
Implement Extensible Data Types - more info in the blog post
- Data-generic programming support in CGP - #112
- Implement
DispatchHandlersReffor dispatching based on enum references - #116 - Builder dispatcher refactoring - #117
- Introduce ref version of handler traits - #118
- Dispatcher Refactoring - #119
- Remove Input param from
MatchWithFieldHandlers- #120 - Support use of ref handlers in handler macros - #121
-
Preset Improvements
- Add new direct delegation mode and use it in preset inheritance - #111
-
Bug Fixes
v0.4.1
More details about this release is covered in the update blogpost.
Changelog
v0.4.0
More details about this release is covered by the update blogpost.
Changelog
-
Debugging Improvements
- Implement
delegate_and_check_components!- #98 - Implement
check_components!macro to check if a context implements a component - #78 - Permanently enable provider supertrait - #73
- Introduce
#[new_cgp_provider]to also generate provider struct definition - #67 - Preserve original provider bounds inside
#[cgp_provider]- #65 - Introduce
IsProviderFortrait to help improve compile errors - #63
- Implement
-
CGP Presets Implementation
-
CGP Getter Improvements
- CGP Getter Improvements - #94
- Getter Macro Improvements - #87
- Refactoring and Improvements on
#[cgp_getter]- #81 - Fix component generics inside derivation of
WithProviderfor#[cgp_getter]- #80 - Fix
#[cgp_getter]macro when the getter trait contains generic parameters - #76 - Allow generic arguments inside
#[cgp_auto_getter]traits - #64
-
Macro Improvements
- Simplify attribute arguments for
#[cgp_component],#[cgp_provider]and#[cgp_context]- #96 - Allow definition of new structs inside
delegate_components!- #93 - Migrate macro tests to
cgp-testscrate, part 1 - #90 - Automatically derive
UseContextimplementation inside#[cgp_component]- #88 - Macro Crates Reorganization - #83
- Refactoring and rename
#[trait_alias]to#[blanket_trait]- #82 - Introduce
#[trait_alias]macro to simplify definition of alias traits - #79 - CGP Macro Refactoring - #77
- Rename
#[new_cgp_provider]to#[cgp_new_provider]- #75 - Introduce
#[cgp_context]attribute macro for CGP contexts - #66
- Simplify attribute arguments for
-
Component System Improvements
-
CGP Field Improvements
v0.3.1
v0.3.0
More details about this release is covered by the update blogpost.
Changelog
-
Introduce Accessor Component Macros - #56
- Introduce
#[cgp_getter]attribute macro that extends#[cgp_component]and implement
UseFieldsandUseFieldfor accessor traits. - Introduce
#[cgp_auto_getter]attribute macro for deriving accessor traits with
blanket implementations that useHasFielddirectly.
- Introduce
-
Introduce
cgp_type!macro for defining simple abstract CGP types - #55- Use
cgp_type!to deriveHasErrorTypeandHasRuntimeType.
- Use
-
Implement
ErrorWrapperon genericErrorRaiserproviders - #54- Implement
ErrorWrapperfor the following providers:DebugError,DisplayError,
DebugAnyhowError,DisplayAnyhowError,RaiseAnyhowError,
DebugEyreError,DisplayEyreError,RaiseEyreError,
DebugBoxedStdError,DisplayBoxedStdError.
- Implement
-
Reorganize crate exports - #53
- Move generic error providers to the
cgp-error-extracrate. - Add an
allocfeature tocgp-error-extrato enable use ofallocin providers. - Make private the sub-modules inside CGP crates.
- Explicitly export module items instead of using
*.
- Move generic error providers to the
-
Move
cgp-innertocgp-extra- #51- Remove re-export of
cgp-innerfromcgp-core. - Re-export
cgp-innerandcgp-runtimefromcgp-extra.
- Remove re-export of
-
Introduce
cgp-runtimecrate - #50- Introduce the
HasRuntimeTypeandHasRuntimetraits. - Introduce
HasAsyncRuntimeTypetrait used for addingAsyncconstraint toHasRuntimeType::Error.
- Introduce the
-
Error crates refactoring - #48
- Remove
Asynctrait bound fromHasErrorType::Error. - Introduce
HasAsyncErrorTypetrait used for addingAsyncconstraint toHasErrorType::Error. - Introduce
CanWrapErrortrait. - Introduce generic
ErrorRaiserproviders incgp-error. - Rename and reoganize constructs in
cgp-error-eyreandcgp-error-std. - Introduce
cgp-error-anyhowcrate.
- Remove
-
Decouple component and field macro crates from the library crates - #47
- Remove
cgp-component-macrocrate from being a dependency ofcgp-component. - Remove
cgp-field-macrocrate from being a dependency ofcgp-field.
- Remove