4 releases (2 breaking)

0.8.0 Feb 20, 2024
0.7.0 May 30, 2022
0.6.1 May 28, 2022
0.6.0 May 11, 2022

#237 in Data structures

Download history 882/week @ 2024-01-21 801/week @ 2024-01-28 1051/week @ 2024-02-04 822/week @ 2024-02-11 789/week @ 2024-02-18 893/week @ 2024-02-25 1136/week @ 2024-03-03 1156/week @ 2024-03-10 1090/week @ 2024-03-17 1215/week @ 2024-03-24 1900/week @ 2024-03-31 1810/week @ 2024-04-07 1925/week @ 2024-04-14 1599/week @ 2024-04-21 1697/week @ 2024-04-28 1263/week @ 2024-05-05

6,657 downloads per month
Used in 16 crates (3 directly)

MIT license

21KB
205 lines

🦀 ErasedSet

A set of erased types.


You may be looking for:

License

Licensed under MIT license.


lib.rs:

🦀 ErasedSet

You may be looking for:


This crate provides a new collection: the ErasedSet. It allows storing different types in a single set (as long as they implement Any).

Example

#
use erased_set::ErasedSet;

let mut set = ErasedSet::new();
set.insert(ClickEvent(128, 256));
set.insert(KeyDownEvent('z'));

assert_eq!(set.get::<ClickEvent>(), Some(&ClickEvent(128, 256)));

assert_eq!(set.insert(KeyDownEvent('e')), Some(KeyDownEvent('z')));

set.remove::<ClickEvent>();

assert_eq!(set.len(), 1);

Features

name default ? description
send yes Enables ErasedSendSet
sync yes Enables ErasedSyncSet

no_std support

This crate is no_std compatible, however it still requires alloc.

No runtime deps