1# Changelog
2
3The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
4and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
6## [Unreleased]
7
8## [0.4.3] - 2020-10-05 <a name="0.4.3"></a>
9### Fixed
10- Fixed undefined behaviours and cleaned up clippy warnings. By [@joshwd36].
11
12## [0.4.2] - 2020-06-09 <a name="0.4.2"></a>
13### Fixed
14- Fixed compile errors on pre-1.36.0 Rust due to unstable `alloc` crate. Minimum supported version
15  is Rust 1.34.2, the rust version for Debian stable. Fixes [#14].
16
17## [0.4.1] - 2020-06-08 <a name="0.4.1"></a>
18### ***Yanked***
19### Changed
20- Now supports `no_std`. Added the `std` and `alloc` features, enabled by default. `U16String`,
21  `U32String`, `U16CString`, and `U32CString` and their aliases all require the `alloc` or `std`
22  feature. By [@nicbn].
23
24## [0.4.0] - 2018-08-18 <a name="0.4.0"></a>
25### Added
26- New `U32String`, `U32Str`, `U32CString`, and `U32CStr` types for dealing with UTF-32 FFI. These
27  new types are roughly equivalent to the existing UTF-16 types.
28- `WideChar` is a type alias to `u16` on Windows but `u32` on non-Windows platforms.
29- The generic types `UString`, `UStr`, `UCString` and `UCStr` are used to implement the string
30  types.
31
32### Changed
33- **Breaking Change** Existing wide string types have been renamed to `U16String`, `U16Str`,
34  `U16CString`, and `U16CStr` (previously `WideString`, `WideStr`, etc.). Some function have
35  also been renamed to reflect this change (`wide_str` to `u16_str`, etc.).
36- **Breaking Change** `WideString`, `WideStr`, `WideCString`, and `WideCStr` are now type aliases
37  that vary between platforms. On Windows, these are aliases to the `U16` types and are equivalent
38  to the previous version, but on non-Windows platforms these alias the new `U32` types instead.
39  See crate documentation for more details.
40
41## [0.3.0] - 2018-03-17 <a name="0.3.0"></a>
42### Added
43- Additional unchecked functions on `WideCString`.
44- All types now implement `Default`.
45- `WideString::shrink_to_fit`
46- `WideString::into_boxed_wide_str` and `Box<WideStr>::into_wide_string`.
47- `WideCString::into_boxed_wide_c_str` and `Box<WideCStr>::into_wide_c_string`.
48- `From` and `Default` implementations for boxed `WideStr` and boxed `WideCStr`.
49
50### Changed
51- Renamed `WideCString::from_vec` to replace `WideCString::new`. To create empty string, use
52  `WideCString::default()` now.
53- `WideCString` now implements `Drop`, which sets the string to an empty string to prevent invalid
54  unsafe code from working correctly when it should otherwise break. Also see `Drop` implementation
55  of `CString`.
56- Writing changelog manually.
57- Upgraded winapi dev dependency.
58- Now requires at least Rust 1.17+ to compile (previously, was Rust 1.8).
59
60## [0.2.2] - 2016-09-09 <a name="0.2.2"></a>
61### Fixed
62- Make `WideCString::into_raw` correctly forget the original self.
63
64## [0.2.1] - 2016-08-12 <a name="0.2.1"></a>
65### Added
66- `into_raw`/`from_raw` on `WideCString`. Closes [#2].
67
68## [0.2.0] - 2016-05-31 <a name="0.2.0"></a>
69### Added
70- `Default` trait to wide strings.
71- Traits for conversion of strings to `Cow`.
72### Changed
73- Methods & traits to bring to parity with Rust 1.9 string APIs.
74
75## 0.1.0 - 2016-02-06 <a name="0.1.0"></a>
76### Added
77- Initial release.
78
79[#2]: https://github.com/starkat99/widestring-rs/issues/2
80[#14]: https://github.com/starkat99/widestring-rs/issues/14
81
82[@nicbn]: https://github.com/nicbn
83[@joshwd36]: https://github.com/joshwb36
84
85[Unreleased]: https://github.com/starkat99/widestring-rs/compare/v0.4.3...HEAD
86[0.4.3]: https://github.com/starkat99/widestring-rs/compare/v0.4.2...v0.4.3
87[0.4.2]: https://github.com/starkat99/widestring-rs/compare/v0.4.1...v0.4.2
88[0.4.1]: https://github.com/starkat99/widestring-rs/compare/v0.4.0...v0.4.1
89[0.4.0]: https://github.com/starkat99/widestring-rs/compare/v0.3.0...v0.4.0
90[0.3.0]: https://github.com/starkat99/widestring-rs/compare/v0.2.2...v0.3.0
91[0.2.2]: https://github.com/starkat99/widestring-rs/compare/v0.2.1...v0.2.2
92[0.2.1]: https://github.com/starkat99/widestring-rs/compare/v0.2.0...v0.2.1
93[0.2.0]: https://github.com/starkat99/widestring-rs/compare/v0.1.0...v0.2.0
94