Finite state machines in rust; bendns fork to add types.
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md114
1 files changed, 76 insertions, 38 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 69a235f..6396a50 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,104 +1,142 @@
# Changelog
+
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog][keepachangelog], and this project
adheres to [Semantic Versioning][semver].
## [Unreleased]
+
+## [0.8.0] - 2025-07-21
+
### Changed
-* Updated `aquamarine` from `0.5` to `0.6`.
+
+- Updated `aquamarine` from `0.5` to `0.6`.
## [0.7.0] - 2024-06-01
+
### Changed
-* All types generated by the `state_machine` macro are now confined in a module.
+
+- All types generated by the `state_machine` macro are now confined in a module.
The name of the module is passed to the macro as the name of the state
machine. All generated types now have uniforms names: `Impl`, `Input`,
`State`, `Output`.
-* If no outputs is specified in the `state_machine` macro, an empty `Output`
+- If no outputs is specified in the `state_machine` macro, an empty `Output`
enum is generated instead of using `()` for the sake of uniformity. No
attributes (e.g. `derive` and `repr`) are applied on an empty `Output`,
because many of them are simply not designed to work this way.
-* It is now possible to use proper Rust attributes like `#[derive(Debug)]`,
+- It is now possible to use proper Rust attributes like `#[derive(Debug)]`,
`#[repr(C)]`, etc (any attribute you want really). This replaces the original
way this macro had for using derives and specifying representation.
-* Use Rust 2021 edition.
+- Use Rust 2021 edition.
+
### Added
-* A type alias `StateMachine` for `rust_fsm::StateMachine<Impl>` is now
+
+- A type alias `StateMachine` for `rust_fsm::StateMachine<Impl>` is now
generated inside the said module.
-* Supplying ones own enums for state, input and output in the proc-macro (#10).
-* An optional possibility to generate Mermaid diagrams.
-* Processing doc comments to generate the state machine module documentation.
+- Supplying ones own enums for state, input and output in the proc-macro (#10).
+- An optional possibility to generate Mermaid diagrams.
+- Processing doc comments to generate the state machine module documentation.
## [0.6.2] - 2024-05-11
+
### Changed
-* Update documentation.
+
+- Update documentation.
+
### Added
-* Derive `Debug` and `Clone` for `StateMachine` struct
+
+- Derive `Debug` and `Clone` for `StateMachine` struct
## [0.6.1] - 2022-12-24
+
### Changed
-* Use pattern matching in examples.
+
+- Use pattern matching in examples.
+
### Added
-* Allow to specify `repr(C)` on generated enums.
+
+- Allow to specify `repr(C)` on generated enums.
## [0.6.0] - 2021-08-24
+
### Changed
-* Updated to `1.x` versions of `syn` and `quote`.
+
+- Updated to `1.x` versions of `syn` and `quote`.
## [0.5.0] - 2021-02-23
+
### Added
-* The re-export of the DSL implementation is gated by the `dsl` feature which is
+
+- The re-export of the DSL implementation is gated by the `dsl` feature which is
enabled by default.
+
### Changed
-* State transition error is now represented with `TransitionImpossibleError`
+
+- State transition error is now represented with `TransitionImpossibleError`
instead of `()`.
-* The library is not `no_std` by default due to the use of `std::error::Error`.
+- The library is not `no_std` by default due to the use of `std::error::Error`.
Users should disable the new `std` feature to use this library in a `no_std`
environment.
## [0.4.0] - 2020-08-25
+
### Added
-* Allow deriving different traits for generated traits.
-* Add the `from_state` method to start the machine from any given state.
-* `no_std` support (thanks @luctius).
+
+- Allow deriving different traits for generated traits.
+- Add the `from_state` method to start the machine from any given state.
+- `no_std` support (thanks @luctius).
+
### Removed
-* All default derives on generated enums.
-* `Copy` constraint on `StateMachineImpl::State`.
+
+- All default derives on generated enums.
+- `Copy` constraint on `StateMachineImpl::State`.
## [0.3.0] - 2019-05-22
+
### Changed
-* Re-organize repository to import a single crate instead of two.
+
+- Re-organize repository to import a single crate instead of two.
## [0.2.0] - 2019-05-16
+
### Added
-* Allow setting visibitility for generated state machine types by putting a
+
+- Allow setting visibitility for generated state machine types by putting a
visibility modifier before the state machine name.
-* Allow to specify multiple transitions from the same state in a more compact
+- Allow to specify multiple transitions from the same state in a more compact
form. See the example for the details.
+
### Changed
-* More clear naming:
- * Renamed the `StateMachineWrapper` structure to `StateMachine`;
- * Renamed the `StateMachine` trait to `StateMachineImpl`.
+
+- More clear naming:
+ - Renamed the `StateMachineWrapper` structure to `StateMachine`;
+ - Renamed the `StateMachine` trait to `StateMachineImpl`.
+
### Removed
-* Removed the `consume_anyway` function.
+
+- Removed the `consume_anyway` function.
## [0.1.0] - 2019-04-29
+
### Added
-* The `StateMachine` trait for formal definitions of state machines and
+
+- The `StateMachine` trait for formal definitions of state machines and
transducers.
-* The `StateMachineWrapper` struct - a convenience wrapper around `StateMachine`
+- The `StateMachineWrapper` struct - a convenience wrapper around `StateMachine`
for practical usage.
-* The first implementation of the DSL for defining state machines that allows
+- The first implementation of the DSL for defining state machines that allows
to:
- * Define a state machine with its initial state;
- * Define state transitions;
- * Define outputs;
- * Generate boilerplates implementing `StateMachine`.
+ - Define a state machine with its initial state;
+ - Define state transitions;
+ - Define outputs;
+ - Generate boilerplates implementing `StateMachine`.
[keepachangelog]: https://keepachangelog.com/en/1.0.0/
[semver]: https://semver.org/spec/v2.0.0.html
-
-[Unreleased]: https://github.com/eugene-babichenko/rust-fsm/compare/v0.7.0...HEAD
+[Unreleased]:
+ https://github.com/eugene-babichenko/rust-fsm/compare/v0.8.0...HEAD
+[0.8.0]: https://github.com/eugene-babichenko/rust-fsm/compare/v0.8.0...v0.7.0
[0.7.0]: https://github.com/eugene-babichenko/rust-fsm/compare/v0.7.0...v0.6.2
[0.6.2]: https://github.com/eugene-babichenko/rust-fsm/compare/v0.6.2...v0.6.1
[0.6.1]: https://github.com/eugene-babichenko/rust-fsm/compare/v0.6.0...v0.6.1