1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic
7Versioning](https://semver.org/spec/v2.0.0.html).
8
9## [Unreleased]
10
11## [v0.6.0] - 2023-09-11
12
13- Updated nix to version `0.27`.
14- Updated bitflags to version `2.4`.
15- MSRV is now 1.65.0.
16
17## [v0.5.1] - 2021-11-22
18
19- Updated nix to version `0.23`.
20- MSRV is now 1.59.0.
21
22## [v0.5.0] - 2021-09-21
23
24- Update Tokio to 1.x. [#55](https://github.com/rust-embedded/gpio-cdev/pull/55).
25- Fix lsgpio example to output gpio line flags.
26- Add `is_empty()` function for `Lines` struct.
27- Add common trait implementations for public structures.
28- Breaking change of `LineEventHandle::get_event()` which now expects `&mut self`.
29- MSRV is now 1.46.0.
30- Updated `nix` to version `0.22`.
31- Updated `quicli` to version `0.4`.
32- Updated `bitflags` to version `1.3`.
33
34
35## [v0.4.0] - 2020-08-01
36
37- Removed pub "errors" module.  Error now exposed at top level.
38- MSRV is now 1.39.0
39- Add support behind a feature flag for reading events from a line as a Stream via tokio. [#35](https://github.com/rust-embedded/gpio-cdev/pull/35).
40
41## [v0.3.0] - 2020-02-10
42
43Refactored Errors:
44- Removed the `error-chain` dependency.
45- Errors are now implemented "manually" with `ErrorKind` and `IoctlKind` enums.
46- The encompassing `Error` type implements the `std::error::Error` trait.
47
48## v0.2.0 - 2018-12-12
49
50Adds the ability to create a collection of lines from a single chip and read or write those lines simultaneously with a single stystem call.
51
52- A new `Lines` object (plural) was added. It is a collection of individual `Line` objects on a single `Chip` which can be read or written simultaneously with a single system call.
53- A `Line` now just contains the reference to the Chip and the offset number. No system call is incurred when one is created.
54- Information about an individual line is now represented by a separate `LineInfo` struct which can be obtained from the function `Line::info()`. This incurs a system call to retrieve the information.
55- Creating a `Line` can't fail unless the caller specifies an offset that is out of range of the chip.
56- The `LineIterator` can not fail since it checks the offset range. So now its item is just a `Line`, and not `Result<Line>`.
57- There was no longer a need for `Line::refresh()` so it was removed.
58- Since a `Line` object is trivial to create, it is now OK to have `Lines` be a simple collection of `Line` structs.
59
60## v0.1.0 - 2018-09-28
61
62- Initial release of the library with basic operations centered around operating
63  on a single line at a time.
64
65[Unreleased]: https://github.com/rust-embedded/gpio-cdev/compare/0.6.0...HEAD
66[v0.6.0]: https://github.com/rust-embedded/gpio-cdev/compare/0.5.1...0.6.0
67[v0.5.1]: https://github.com/rust-embedded/gpio-cdev/compare/0.5.0...0.5.1
68[v0.5.0]: https://github.com/rust-embedded/gpio-cdev/compare/0.4.0...0.5.0
69[v0.4.0]: https://github.com/rust-embedded/gpio-cdev/compare/0.3.0...0.4.0
70