1 | [package] |
2 | authors = [ |
3 | "Jorge Aparicio <jorge@japaric.io>" , |
4 | "Per Lindgren <per.lindgren@ltu.se>" , |
5 | "Emil Fresk <emil.fresk@gmail.com>" , |
6 | ] |
7 | categories = ["data-structures" , "no-std" ] |
8 | description = "`static` friendly data structures that don't require dynamic memory allocation" |
9 | documentation = "https://docs.rs/heapless" |
10 | edition = "2021" |
11 | keywords = ["static" , "no-heap" ] |
12 | license = "MIT OR Apache-2.0" |
13 | name = "heapless" |
14 | repository = "https://github.com/rust-embedded/heapless" |
15 | version = "0.8.0" |
16 | |
17 | [features] |
18 | # Enable polyfilling of atomics via `portable-atomic`. |
19 | # `portable-atomic` polyfills some functionality by default, but to get full atomics you must |
20 | # enable one of its features to tell it how to do it. See `portable-atomic` documentation for details. |
21 | portable-atomic = ["dep:portable-atomic" ] |
22 | |
23 | # Enable polyfilling of atomics via portable-atomic, using critical section for locking |
24 | portable-atomic-critical-section = ["dep:portable-atomic" , "portable-atomic" , "portable-atomic?/critical-section" ] |
25 | |
26 | # Enable polyfilling of atomics via portable-atomic, using disabling interrupts for locking. |
27 | # WARNING: this is only sound for single-core bare-metal privileged-mode targets! |
28 | portable-atomic-unsafe-assume-single-core = ["dep:portable-atomic" , "portable-atomic" , "portable-atomic?/unsafe-assume-single-core" ] |
29 | |
30 | # implement serde traits. |
31 | serde = ["dep:serde" ] |
32 | |
33 | # implement ufmt traits. |
34 | ufmt = ["dep:ufmt-write" ] |
35 | |
36 | # Implement defmt::Format from defmt v0.3 |
37 | defmt-03 = ["dep:defmt" ] |
38 | |
39 | # Enable larger MPMC sizes. |
40 | mpmc_large = [] |
41 | |
42 | [dependencies] |
43 | portable-atomic = { version = "1.0" , optional = true } |
44 | hash32 = "0.3.0" |
45 | serde = { version = "1" , optional = true, default-features = false } |
46 | stable_deref_trait = { version = "1" , default-features = false } |
47 | ufmt-write = { version = "0.1" , optional = true } |
48 | defmt = { version = ">=0.2.0,<0.4" , optional = true } |
49 | |
50 | [dev-dependencies] |
51 | ufmt = "0.2" |
52 | |
53 | [package.metadata.docs.rs] |
54 | features = ["ufmt" , "serde" , "defmt-03" , "mpmc_large" , "portable-atomic-critical-section" ] |
55 | # for the pool module |
56 | targets = ["i686-unknown-linux-gnu" ] |
57 | rustdoc-args = ["--cfg" , "docsrs" ] |
58 | |