220 Commits

Author SHA1 Message Date
Zeeshan Ali Khan
0b027b1ff8 Implements zeroization support across all heapless data structures to securely clear sensitive data from memory:
- When the zeroize feature is enabled, the LenType sealed trait now has Zeroize as a supertrait
- This simplifies the bound for deriving Zeroize for VecInner and other types
- Added tests to verify VecView also implements Zeroize correctly

This feature is essential for security-sensitive applications needing to prevent data leaks from memory dumps.

Note: Zeroize initially worked on Vector purely via derivation, however was not complete without proper bound checks. Without these checks, the deref implementation of Zeroize was used instead, which led to incomplete zeroization of the Vector's contents.
2025-09-24 13:06:10 -04:00
Zeeshan Ali Khan
284955a2d7
Switch from serde to serde_core
This new split of `serde` crate, enables faster compilation by allowing
non-derive needing parts (such as this library) to be compiled in
parallel to `serde_derive` crate.
2025-09-16 14:57:55 +02:00
Mortano
ca2368dd7f Update CHANGELOG.md to more concise description
Co-authored-by: Soso <51865119+sgued@users.noreply.github.com>
2025-09-08 15:51:33 +02:00
Pascal
66dab53263 Added missing CHANGELOG entry 2025-09-08 15:51:33 +02:00
William Hicklin
75dbe63466 Implements TryFrom for Deque from array 2025-09-08 13:12:41 +01:00
Süha Ünüvar
381269b3b9
add missing dots 2025-09-03 22:42:42 +08:00
Süha Ünüvar
0b21ca3e0d Implement defmt::Format for CapacityError 2025-09-03 11:49:38 +08:00
Sosthène Guédon
e6e615a6de Implement default for capacity error
Fix https://github.com/rust-embedded/heapless/issues/601
2025-08-27 11:57:31 +02:00
Quetzal Bradley
26bae14ea2 Remove duplicate documentation line 2025-08-27 00:04:56 +00:00
Zeeshan Ali Khan
5fda686479
Fix a broken link 2025-08-21 13:56:28 +02:00
Zeeshan Ali Khan
628b52f1b5
Declare MSRV in Cargo.toml
Let's make our MSRV explicit.
2025-08-20 21:17:48 +02:00
Sosthène Guédon
0a764cd4ba
Prepare release 0.9.1
This is a breaking change, 0.9.0 should be yanked. See
https://github.com/rust-embedded/heapless/issues/568
2025-08-19 12:48:41 +02:00
Sosthène Guédon
2f1744351b De-monomorphize spsc consumer, producer and iterators
This needs a workaround for the `const` use case however
2025-08-18 11:45:49 +02:00
Riley Williams
8247cf2f8b Update changelog 2025-08-13 12:07:50 -04:00
Zeeshan Ali Khan
a290cec514
Add missing Debug derive to vec::IntoIter 2025-08-13 11:45:38 +02:00
Zeeshan Ali Khan
2a8bc61696
Minor fixes to pool::boxed docs 2025-08-08 18:27:46 +02:00
Riley Williams
090f7cad3c Update changelog 2025-07-15 10:08:43 -04:00
Sosthène Guédon
76797513f4
Remove DefaultLenType functionality and the ZeroLengthType implementation 2025-04-29 21:56:22 +02:00
Sosthène Guédon
5e7fefdc5d
Make LenType opt-in 2025-04-29 21:56:06 +02:00
Markus Reiter
fb6b0b1674
Merge pull request #570 from Nitrokey/oldest-ordered-de-monomorphize
Remove generic from history_buf::OldestOrdered
2025-04-29 19:43:29 +00:00
Sosthène Guédon
6bf9a98c50
Remove generic from history_buf::OldestOrdered 2025-04-29 20:28:42 +02:00
Alex Martens
b99dd94f94 CHANGELOG: mark 0.9.0 as yanked
There is an unexpected regression in 0.9.0 with generics that is going
to break a lot of code.
https://github.com/rust-embedded/heapless/issues/568
2025-04-29 07:59:30 -07:00
Markus Reiter
fe124c0b15
Add changelog entries. 2025-04-29 12:28:01 +02:00
Zeeshan Ali Khan
92b476a486 Release 0.9.0
Fixes #529.
2025-04-28 11:20:38 +02:00
Alex Martens
481de1592c CHANGELOG: fix formatting 2025-04-28 11:19:31 +02:00
Markus Reiter
f692384ad7
Merge pull request #443 from reitermarkus/const-split
Make `Queue::split` `const`.
2025-04-26 19:47:48 +00:00
Markus Reiter
c46858aee3
Add changelog entry. 2025-04-26 20:41:48 +02:00
Phil Rutschman
daa9196f70 Changelog 2025-04-25 16:47:32 -07:00
Artem Kryvokrysenko
a81931c078 Optimize size of heapless::Vec<_, 0> to 0 bytes
If `Vec` has 0 capacity, it can store only 0 elements, so its len can be assumed to be always 0.

I'm updating `DefaultLenType` to have a special case: `DefaultLenType<0>` will be represented by zero
sized type which always has value 0.

This allows reducing size of `heapless::Vec<u8, 0>` from 8 bytes to 0 bytes.
2025-04-23 22:44:51 +00:00
Markus Reiter
00c106345d Make Queue::split const.
# Conflicts:
#	Cargo.toml
2025-04-23 22:24:39 +02:00
GnomedDev
d1993c5634
Add generic LenType to String 2025-04-23 22:00:52 +02:00
GnomedDev
c92e770960
Migrate SortedLinkedList to LenType 2025-04-20 13:03:17 +01:00
Yota Toyama
493768f83f
Merge branch 'main' into cstring 2025-04-15 07:23:36 +09:00
Yota Toyama
120a059abe
Merge branch 'main' into cstring 2025-04-11 08:00:18 +09:00
Christian Poveda
03738160b1
Update changelog 2025-04-10 15:54:12 -05:00
Markus Reiter
fb62d12ad5
Merge pull request #504 from GnomedDev/vec-generic-length
Implement a generic length parameter for Vec<T, N>
2025-04-10 17:45:39 +00:00
GnomedDev
a16a927a33
Implement a generic length parameter for Vec<T, N> 2025-04-10 17:55:22 +01:00
Christian Poveda
0e8f01103e
Update changelog 2025-04-10 10:40:42 -05:00
Yota Toyama
ce6d252f7f
Merge branch 'main' into cstring 2025-04-09 13:45:09 +09:00
Yota Toyama
4060b0db36 Update change log 2025-04-06 17:49:35 -07:00
Alex Martens
bee84f9e77 Merge branch 'main' into impl-alloc-interop 2025-04-06 17:34:50 -07:00
Markus Reiter
6d52751ad1
Add changelog entry. 2025-04-06 21:36:11 +02:00
Lucas Bollen
d51cc11618
Add inline annotations to wrapping function calls in ufmt
This should make the compiler inline the function calls to increase performance.
2025-04-06 19:29:42 +02:00
Lucas Bollen
b21563dfa7
Add the uDisplay trait for String incl test.
Did not add `uDisplay` for `Vec` because there is no trivial implementation.

# Conflicts:
#	Cargo.toml
#	src/ufmt.rs
2025-04-06 19:28:42 +02:00
Markus Reiter
df33331075
Fix formatting. 2025-04-06 02:24:02 +02:00
Pavel Ivanov
894937c219
feat(indexmap): added get_index, get_index_mut and get_index_of 2025-04-06 02:23:10 +02:00
Markus Reiter
1052f4d783
Also relax bounds on PartialEq for LinearMap. 2025-04-06 01:16:49 +02:00
Yuhan Lin
acbfe7d1ff
Update CHANGELOG.md
Co-authored-by: Markus Reiter <me@reitermark.us>
2025-04-06 01:12:17 +02:00
YuhanLiin
a18a0d5fb2
Update CHANGELOG 2025-04-06 01:12:17 +02:00
Markus Reiter
877db4253f
Merge pull request #546 from newAM/defmt-1
defmt: 0.3 -> 1
2025-04-05 22:47:44 +00:00