#macro #maps #sets #collection #hash-map #btree-map #btree-set

simple-collection-macros

Simple and configurable macros for maps and sets

3 releases

0.1.2 Oct 5, 2022
0.1.1 Oct 5, 2022
0.1.0 Oct 5, 2022

#2163 in Data structures

Download history 10/week @ 2024-02-19 22/week @ 2024-02-26 40/week @ 2024-03-11

62 downloads per month

MIT license

10KB
145 lines

Disclaimer: This is intended for internal template use but feel free to use. It is unlikely feature additions will be merged unless we would like to add it ourselves.

This is just a small repository that contains simple macros for creating maps and sets of differing types and backends.

There are three different kinds of backends for HashMaps:

  • The std backend - the standard std::collections::HashMap
  • The dashmap backend - dashmap::DashMap
  • The thincollections backend - thincollections::thin_map::ThinMap

The std backend is chosen by default when neither the dashmap feature or the thincollections feature are enabled. Additionally, the dashmap and thincollections features are mutually exclusive and a compiler error will occur if both features are enabled.

This crate defines the following macros:

  • hmap - A HashMap macro using one of the specified backends.
  • bmap - A BTreeMap macro using the std's implementation.
  • map - A generic map macro that will construct either a HashMap (default) or BTreeMap depending on feature selection.
  • hset - A HashSet macro using one of the specified backends.
  • bset - A BTreeSet macro using the std's implementation.
  • set - A generic set macro that will construct either a HashSet (default) or BTreeSet depending on feature selection.

Default map selection can be defined with the map-macro-use-hmap or map-macro-use-bmap, both are mutually exclusive with eachother.

Default set selection can be defined with the set-macro-use-hset or set-macro-use-bset, both are mutually exclusive with eachother.

Dependencies

~0–6.5MB