@@ -7,8 +7,45 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
8
8
## [ Unreleased]
9
9
10
+ - Minor fixes to module docs.
11
+ - Make MSRV of 1.87.0 explicit.
12
+ - Implement ` Default ` for ` CapacityError ` .
13
+ - Implement ` defmt::Format ` for ` CapacityError ` .
14
+ - Implement ` TryFrom ` for ` Deque ` from array.
15
+ - Switch from ` serde ` to ` serde_core ` for enabling faster compilations.
16
+ - Implement ` Zeroize ` trait for all data structures with the ` zeroize ` feature to securely clear sensitive data from memory.
17
+
18
+ ## [ v0.9.1] - 2025-08-19
19
+
20
+ ### Added
21
+
22
+ - Added ` String::insert ` and ` String::insert_str ` .
23
+
24
+ ### Changed
25
+
26
+ - ` bytes::BufMut ` is now implemented on ` VecInner ` .
27
+ - Removed generic from ` history_buf::OldestOrdered ` .
28
+ - Made ` LenType ` opt-in.
29
+ - Minor fixes to ` pool::boxed ` docs.
30
+ - Add missing ` Debug ` derive to ` vec::IntoIter ` .
31
+ - Removed generic from ` spsc::Consumer ` , ` spsc::Producer ` and ` spsc::Iter ` .
32
+
33
+ ### Fixed
34
+
35
+ - CI now uses flags specified in ` Cargo.toml ` for ` rustdoc ` tests.
36
+ - Fixed clippy lints.
37
+ - Fixed the memory layout of the internal ` UnionNode<T> ` type, fixing possible Undefined Behaviour.
38
+
39
+ ### Removed
40
+
41
+ - Removed invalid ` bytes::Buf ` implementation.
42
+ - Removed ` DefaultLenType ` struct.
43
+
44
+ ## [ v0.9.0] - 2025-04-28 [ YANKED]
45
+
10
46
### Added
11
47
48
+ - Added ` bytes::Buf ` and ` bytes::BufMut ` implementations for ` Vec ` .
12
49
- Added ` format ` macro.
13
50
- Added ` String::from_utf16 ` .
14
51
- Added ` is_full ` , ` recent_index ` , ` oldest ` , and ` oldest_index ` to ` HistoryBuffer `
@@ -40,13 +77,67 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
40
77
- Added implementation of ` Borrow ` and ` BorrowMut ` for ` String ` and ` Vec ` .
41
78
- Added ` Deque::{swap, swap_unchecked, swap_remove_front, swap_remove_back} ` .
42
79
- Make ` String::from_utf8_unchecked ` const.
80
+ - Implemented ` PartialEq ` and ` Eq ` for ` Deque ` .
81
+ - Added ` alloc ` feature to enable ` alloc ` -Vec interoperability.
82
+ - Added ` TryFrom<alloc::vec::Vec> ` impl for ` Vec ` .
83
+ - Added ` TryFrom<Vec> ` impl for ` alloc::vec::Vec ` .
84
+ - Added ` truncate ` to ` IndexMap ` .
85
+ - Added ` get_index ` and ` get_index_mut ` to ` IndexMap ` .
86
+ - Added ` String::uDisplay ` .
87
+ - Added ` CString ` .
88
+ - Added ` LenT ` generic to ` Vec<T, N> ` and ` VecView<T> ` to save memory when using a sane capacity value.
89
+ - Added the ` index_set ` module.
90
+ - Added the ` index_map ` module.
91
+ - Migrated ` Idx ` generic for ` SortedLinkedList ` to use the new ` LenType ` trait, allowing for ` Idx ` inference.
92
+ - Added similar ` LenT ` generic to ` String ` .
93
+ - Optimize size of zero capacity ` Vec<T, 0> ` to be 0 bytes
43
94
44
95
### Changed
45
96
97
+ - Updated defmt from 0.3 to 1.0.1
98
+ - Changed the feature name from ` defmt-03 ` to ` defmt ` .
99
+ - Changed the error type of these methods from ` () ` to ` CapacityError ` .
100
+ - ` String::push_str `
101
+ - ` String::push `
102
+ - ` Vec::extend_from_slice `
103
+ - ` Vec::from_slice `
104
+ - ` Vec::resize_default `
105
+ - ` Vec::resize `
106
+ - Renamed ` FromUtf16Error::DecodeUtf16Error ` to ` FromUtf16Error::DecodeUtf16 ` .
46
107
- Changed ` stable_deref_trait ` to a platform-dependent dependency.
108
+ - Changed ` SortedLinkedList::pop ` return type from ` Result<T, ()> ` to ` Option<T> ` to match ` std::vec::pop ` .
109
+ - ` Vec::capacity ` is no longer a ` const ` function.
110
+ - Relaxed bounds on ` PartialEq ` for ` IndexMap ` from ` V: Eq ` to ` V1: PartialEq<V2> ` .
111
+ - Relaxed bounds on ` PartialEq ` for ` LinearMap ` from ` V: PartialEq ` to ` V1: PartialEq<V2> ` .
112
+ - The ` FnvIndexSet ` type is now inside the ` index_set ` module.
113
+ - The ` IndexSetIter ` type is now inside the ` index_set ` module and has been renamed to ` Iter ` .
114
+ - The ` Bucket ` type is now inside the ` index_map ` module.
115
+ - The ` Entry ` type is now inside the ` index_map ` module.
116
+ - The ` FnvIndexMap ` type is now inside the ` index_map ` module.
117
+ - The ` IndexMapIter ` type is now inside the ` index_map ` module and has been renamed to ` Iter ` .
118
+ - The ` IndexMapIterMut ` type is now inside the ` index_map ` module and has been renamed to ` IterMut ` .
119
+ - The ` IndexMapKeys ` type is now inside the ` index_map ` module and has been renamed to ` Keys ` .
120
+ - The ` OccupiedEntry ` type is now inside the ` index_map ` module.
121
+ - The ` Pos ` type is now inside the ` index_map ` module.
122
+ - The ` VacantEntry ` type is now inside the ` index_map ` module.
123
+ - The ` VacantEntry ` type is now inside the ` index_map ` module.
124
+ - The ` IndexMapValues ` type is now inside the ` index_map ` module and has been renamed to ` Values ` .
125
+ - The ` IndexMapValuesMut ` type is now inside the ` index_map ` module and has been renamed to ` ValuesMut ` .
126
+ - The ` histbuf ` module has been renamed to ` history_buf ` .
127
+ - The ` HistoryBuffer ` type has been renamed to ` HistoryBuf ` .
128
+ - The ` HistoryBufferView ` type has been renamed to ` HistoryBufView ` .
129
+ - The ` OwnedHistBufStorage ` type has been renamed to ` OwnedHistoryBufStorage ` .
130
+ - The ` ViewHistBufStorage ` type has been renamed to ` ViewHistoryBufStorage ` .
131
+ - The ` MpMcQueue ` type has been renamed to ` Queue ` .
132
+ - The ` MpMcQueueView ` type has been renamed to ` QueueView ` .
133
+ - The ` MpMcQueueInner ` type has been renamed to ` QueueInner ` .
134
+ - Remove ` Q* ` type aliases for ` MpMcQueue ` , and rename it to just ` Queue `
135
+ - Changed ` Queue::split ` to be ` const ` .
47
136
48
137
### Fixed
49
138
139
+ - Fixed bug in ` IndexMap::truncate ` that left the map in an inconsistent state.
140
+ - Fixed compilation on ` thumbv6m-none-eabi ` without ` portable-atomic ` feature.
50
141
- Fixed clippy lints.
51
142
- Fixed ` {arc,box,object}_pool! ` emitting clippy lints.
52
143
- Fixed the list of implemented data structures in the crate docs, by adding ` Deque ` ,
@@ -58,6 +149,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
58
149
59
150
- ` doc_auto_cfg ` feature which was merged into ` doc_cfg ` . Presence of the feature led to doc
60
151
build failures on nightly.
152
+ - ` Vec::storage_capacity ` has been removed and ` Vec::capacity ` must be used instead.
153
+ - Removed ` sorted_linked_list::Iter ` and ` sorted_linked_list::IterInner ` .
154
+ - Removed ` sorted_linked_list::FindMut ` and ` sorted_linked_list::FindMutInner ` .
155
+ - The ` Q2 ` , ` Q4 ` , ` Q8 ` , ` Q16 ` , ` Q32 ` and ` Q64 ` aliases for ` MpMcQueue ` have been removed.
61
156
62
157
## [ v0.8.0] - 2023-11-07
63
158
@@ -94,6 +189,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
94
189
- ` ufmt-impl ` is now ` ufmt `
95
190
- ` cas ` is removed, atomic polyfilling is now opt-in via the ` portable-atomic ` feature.
96
191
- ` Vec::as_mut_slice ` is now a public method.
192
+ - ` ufmt ` functions are annotated with ` inline ` .
97
193
98
194
### Fixed
99
195
@@ -615,7 +711,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
615
711
616
712
- Initial release
617
713
618
- [ Unreleased ] : https://github.com/rust-embedded/heapless/compare/v0.8.0...HEAD
714
+ [ Unreleased ] : https://github.com/rust-embedded/heapless/compare/v0.9.1...HEAD
715
+ [ v0.9.1 ] : https://github.com/rust-embedded/heapless/compare/v0.9.0...v0.9.1
716
+ [ v0.9.0 ] : https://github.com/rust-embedded/heapless/compare/v0.8.0...v0.9.0
619
717
[ v0.8.0 ] : https://github.com/rust-embedded/heapless/compare/v0.7.16...v0.8.0
620
718
[ v0.7.16 ] : https://github.com/rust-embedded/heapless/compare/v0.7.15...v0.7.16
621
719
[ v0.7.15 ] : https://github.com/rust-embedded/heapless/compare/v0.7.14...v0.7.15
0 commit comments