Conversation
## Breaking Changes (Overview)
- `byte[]` and stream serialisation has changed, but is now significantly more robust (and simpler in its' implementation)
- As JSON filtering hasn't changed, you can retain any filters saved in `byte[]` form. Before upgrading convert them to JSON and then upgrade and revert them back
- Linked to this; `TypeTracker.DefaultFilterStatementTypes` has also been removed, as it is no longer required for serialisation
## Changes (Overview)
- Formatted across the whole project
- Removed unused/unnecessary `using` statements
## Package: TopMarksDevelopment.ExpressionBuilder.Api
### Breaking Changes
- `IFilterCollection`/`IFilterCollection<T?>` now expects an `AddRange` method
### Added
- Finally added all summary blocks 🎉
(Chore: do the same to all other packages)
## Package: TopMarksDevelopment.ExpressionBuilder.Core
### Breaking Changes
- `byte[]` and stream serialisation has changed, but is now significantly more robust
- As JSON filtering hasn't changed, you can retain any filters saved in `byte[]` form. Before upgrading convert them to JSON and then upgrade and revert them back
- Linked to this; `TypeTracker.DefaultFilterStatementTypes` has also been removed, as it is no longer required for serialisation
### Added
- There's now a `.proto` file available [here](./Packages/Core/src/Proto/ExpressionBuilder.proto)
- `FilterCollection` and `FilterCollection<T?>` include an `AddRange` method - supporting API Changes
- Added new members for the serialisation changes
- `IProtoFilterItem` interface
Used on classes that build our filter (implementing the conversion between types)
- `IProtoConverter` interface
When your generic type is not a supported value, implementing this interface means we can still process it in `byte[]` serialisation
- `ProtoFilterStatement` class
The new class used for `byte[]` serialisation. This class does not have a generic type, so makes serialising a lot more simple and robust
### Changes
- Added JSON file test and renamed JSON tests
- Removed tests associated with `TypeTracker.DefaultFilterStatementTypes` work
- Fixed some `ValueToByteConverters` Pack/UnPack convertions - Add some `ValueToByteConverters` tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not going to lie, a little work ended up spiralling, leaving most files updated (mostly from formatting)
Breaking Changes (Overview)
byte[]and stream serialisation has changed, but is now significantly more robust (and simpler in its' implementation)byte[]form. Before upgrading convert them to JSON and then upgrade and revert them backTypeTracker.DefaultFilterStatementTypeshas also been removed, as it is no longer required for serialisationChanges (Overview)
usingstatementsPackage: TopMarksDevelopment.ExpressionBuilder.Api
Breaking Changes
IFilterCollection/IFilterCollection<T?>now expects anAddRangemethodAdded
(Chore: do the same to all other packages)
Package: TopMarksDevelopment.ExpressionBuilder.Core
Breaking Changes
byte[]and stream serialisation has changed, but is now significantly more robustbyte[]form. Before upgrading convert them to JSON and then upgrade and revert them backTypeTracker.DefaultFilterStatementTypeshas also been removed, as it is no longer required for serialisationAdded
.protofile available hereFilterCollectionandFilterCollection<T?>include anAddRangemethod - supporting API ChangesIProtoFilterIteminterfaceUsed on classes that build our filter (implementing the conversion between types)
IProtoConverterinterfaceWhen your generic type is not a supported value, implementing this interface means we can still process it in
byte[]serialisationProtoFilterStatementclassThe new class used for
byte[]serialisation. This class does not have a generic type, so makes serialising a lot more simple and robustChanges
TypeTracker.DefaultFilterStatementTypeswork