expressive/CHANGELOG.md

113 lines
3.8 KiB
Markdown
Raw Normal View History

2019-03-20 13:37:07 +00:00
# Change Log
## Unreleased
### Notes
### Added
### Removed
### Changed
### Fixed
### Deprecated
2019-03-28 14:42:11 +00:00
## [3.1.0](https://github.com/ISibboI/evalexpr/compare/3.0.0...3.1.0) - 2019-03-28
### Added
* Add serde support to `HashMapContext`
* Make `HashMapContext` derive `Default` and `Debug`
2019-03-28 14:42:11 +00:00
### Changed
* Changed name of serde feature flag to `serde_support`
## [3.0.0](https://github.com/ISibboI/evalexpr/compare/2.0.0...3.0.0) - 2019-03-28
### Notes
2019-03-28 10:55:27 +00:00
The 3.0.0 update transforms the expression evaluator `evalexpr` to a tiny scripting language.
It allows assignments and chaining of expressions.
Some changes in this update are breaking, hence the major release.
2019-03-27 18:14:24 +00:00
### Added
2019-03-28 10:55:27 +00:00
* Methods `Node::eval_<type>_with_context_mut` and crate level `eval_<type>_with_context_mut`
* Empty type and corresponding shortcut methods. The empty type is emitted by empty expressions or empty subexpressions `()`.
* The assignment operator `=`
* The expression chaining operator `;`
2019-03-27 18:14:24 +00:00
### Removed
* Generic arguments from `Context` traits are now static to allow using trait objects of `Context`
2019-03-28 10:55:27 +00:00
* `EvalexprError::EmptyExpression` is not required anymore since empty expressions now evaluate to the empty type
2019-03-27 18:14:24 +00:00
### Changed
* Merge `ContextMut` trait into `Context` trait
## [2.0.0](https://github.com/ISibboI/evalexpr/compare/1.2.0...2.0.0) - 2019-03-28
2019-03-27 18:14:24 +00:00
2019-03-27 18:27:44 +00:00
### Notes
The 2.0.0 update is the first step to transform evalexpr to a tiny scripting language with support of at least variable assignment.
The main change for now is that `Configuration` is called `Context`, which seems to be a more proper naming for a set of variables that can not only be read, but also manipulated via expressions.
This update includes further renamings and some inconsistencies in the API were fixed.
For more details, see the following subsections.
### Added
* Add the `ContextMut` trait, that is a manipulable configuration/context
* Add `ContextNotManipulable` error variant for the `EmptyContext`
2019-03-27 17:19:05 +00:00
* Make the `TupleType` alias public
* Add the `ValueType` enum that represents the type of a value for easier comparisons and matchings
* Add `EvalexprResult<T>` type that uses the `EvalexprError` type (renamed from `Error`)
* Add `Node::eval_number` and `Node::eval_number_with_context` to evaluate to int or float and silently converting to float
* Add `eval_number` and `eval_number_with_context` crate methods to evaluate to int or float and silently converting to float
### Changed
2019-03-27 15:19:56 +00:00
* Get rid of some unwraps to improve safety
2019-03-27 17:19:05 +00:00
* Rename `Error` to `EvalexprError`
* Rename `Configuration` to `Context`
* Rename `HashMapConfiguration` to `HashMapContext` and `EmptyConfiguration` to `EmptyContext`
* Rename `Value::as_float` to `Value::as_number` and add new `Value::as_float` that fails if value is an integer
2019-03-27 15:19:56 +00:00
2019-03-23 14:15:48 +00:00
## [1.2.0](https://github.com/ISibboI/evalexpr/compare/1.1.0...1.2.0) - 2019-03-23
2019-03-20 15:43:06 +00:00
### Added
2019-03-23 10:46:52 +00:00
* Add `serde` feature
* Implement `serde::de::Deserialize` for `Node`
* Document `serde` usage
* Add custom error type with a `String` message
2019-03-23 10:46:52 +00:00
2019-03-20 15:43:06 +00:00
### Changed
2019-03-23 14:15:48 +00:00
* Highlighting in documentation
2019-03-20 15:43:06 +00:00
## [1.1.0](https://github.com/ISibboI/evalexpr/compare/1.0.0...1.1.0) - 2019-03-20
2019-03-20 13:37:07 +00:00
### Added
* Internal aliases `IntType` and `FloatType` used by the `Value` enum are now public
* Type alias `TupleType` used to represent tuples was added
* Error types like `Error::ExpectedInt` for expecting each value type were added
* Shortcut functions like `eval_int` or `eval_int_with_configuration` to evaluate directly into a value type were added
* Documentation for the shortcut functions was added
2019-03-20 15:43:06 +00:00
* Functions to decompose `Value`s were added and documented
2019-03-20 13:37:07 +00:00
### Removed
* Integration tests were removed from shipped crate
2019-03-20 13:37:07 +00:00
### Fixed
* Wording of some documentation items was changed to improve readability
2019-03-20 13:37:07 +00:00
## [1.0.0](https://github.com/ISibboI/evalexpr/tree/1.0.0) - 2019-03-20
* First stable release