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

#256 in Data structures

Download history 261/week @ 2023-12-21 233/week @ 2023-12-28 267/week @ 2024-01-04 377/week @ 2024-01-11 801/week @ 2024-01-18 761/week @ 2024-01-25 908/week @ 2024-02-01 939/week @ 2024-02-08 953/week @ 2024-02-15 684/week @ 2024-02-22 1102/week @ 2024-02-29 1181/week @ 2024-03-07 1020/week @ 2024-03-14 1335/week @ 2024-03-21 1668/week @ 2024-03-28 1345/week @ 2024-04-04

5,627 downloads per month
Used in 15 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