| 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 | |