zed/crates/sum_tree/Cargo.toml
Gnome! aabc967b1c
Swap arrayvec crate for heapless to use LenT optimization (#47101)
Swaps the `arrayvec` dependency for `heapless`, as the `heapless`
library allows changing the type used for the `len` field, which
`arrayvec` hard-codes to `usize`. This means that, for all the
`ArrayVec`s in Zed, we can save 7 bytes on 64 bit platforms by just
storing the length as a `u8`.

I have not benchmarked this change locally, as I don't know what
benchmarking tools are in this project.

As a small bit of context, I wrote the PR to `heapless` to add this
`LenT` generic after seeing a PR on the `arrayvec` crate that seems to
be dead now. Once I saw some of Zed's blog posts about the `rope` crate
and noticed the usage of `arrayvec`, I thought this might be a welcome
change.

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2026-03-21 14:05:30 +01:00

35 lines
No EOL
651 B
TOML

[package]
name = "sum_tree"
version = "0.1.0"
edition.workspace = true
publish = false
license = "Apache-2.0"
description = "A sum tree data structure, a concurrency-friendly B-tree"
[lints]
workspace = true
[lib]
path = "src/sum_tree.rs"
doctest = false
[dependencies]
heapless.workspace = true
rayon.workspace = true
log.workspace = true
ztracing.workspace = true
tracing.workspace = true
proptest = { workspace = true, optional = true }
[dev-dependencies]
ctor.workspace = true
rand.workspace = true
proptest.workspace = true
zlog.workspace = true
[package.metadata.cargo-machete]
ignored = ["tracing"]
[features]
test-support = ["proptest"]