WorkTablesIndex 0.0.5

A two-level BTree with fast iteration and indexing operations
Documentation
[package]
name = "WorkTablesIndex"
version = "0.0.5"
edition = "2021"
documentation = "https://docs.rs/WorkTablesIndex/"
repository = "https://github.com/pathscale/WorkTablesIndex"
license = "Apache-2.0 OR MIT"
description = "A two-level BTree with fast iteration and indexing operations"
keywords = ["btreemap", "btreeset", "set", "map", "order-statistic"]
categories = ["data-structures"]
readme = "README.md"

[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
rand = "0.9.0"
scc = { version = "2.2.5" }
uuid = { version = "1.17.0", features = ["v7"]}

[dependencies]
serde = { version = "1.0.151", optional = true, features = ["derive"] }
ftree = { version = "1.3.0", features = ["serde"] }
parking_lot = { version = "0.12.3", features = [
    "send_guard",
    "arc_lock",
], optional = true }
crossbeam-utils = { version = "0.8.20", optional = true }
crossbeam-skiplist = { version = "0.1.3", optional = true }
fastrand = { version = "2.3.0", optional = true }
superslice = { version = "=1.0.0", optional = true }
wt-slice = { version = "=0.1.0", optional = true }

[features]
default = ["wt-slice-binary-search"]
serde = ["dep:serde"]
concurrent = [
    "dep:crossbeam-utils",
    "dep:crossbeam-skiplist",
    "dep:parking_lot",
]
cdc = ["concurrent"]
multimap = ["concurrent", "dep:fastrand"]
custom-binary-search = []
std-binary-search = []
superslice-binary-search = ["dep:superslice"]
wt-slice-binary-search = ["dep:wt-slice"]

[package.metadata.docs.rs]
features = ["cdc", "concurrent", "multimap"]

[[bench]]
name = "stdlib"
harness = false

[[bench]]
name = "concurrent"
harness = false
required-features = ["multimap"]

# Lint policy: this crate is a minimal-diff downstream package of upstream
# indexset (github.com/lucidarium-systems/indexset). The allows below freeze
# lint classes still present in inherited code; CI denies everything else.
# Do not add new allows for newly written code.

[lints.rust]
unknown_lints = "allow" # entries below may not exist on older toolchains
non_snake_case = "allow"
deprecated = "allow"
mismatched_lifetime_syntaxes = "allow"

[lints.clippy]
# nonminimal_bool fires on upstream test code under older clippy (1.96 on CI)
nonminimal_bool = "allow"
bind_instead_of_map = "allow"
bool_assert_comparison = "allow"
clone_on_copy = "allow"
derived_hash_with_manual_eq = "allow"
field_reassign_with_default = "allow"
get_first = "allow"
get_last_with_len = "allow"
iter_cloned_collect = "allow"
len_without_is_empty = "allow"
len_zero = "allow"
manual_ok_err = "allow"
missing_transmute_annotations = "allow"
multiple_bound_locations = "allow"
needless_borrow = "allow"
needless_range_loop = "allow"
needless_return = "allow"
never_loop = "allow"
non_canonical_partial_ord_impl = "allow"
op_ref = "allow"
redundant_locals = "allow"
redundant_pattern_matching = "allow"
repeat_vec_with_capacity = "allow"
type_complexity = "allow"
uninit_assumed_init = "allow"
unit_arg = "allow"
unnecessary_lazy_evaluations = "allow"
unnecessary_sort_by = "allow"
unnecessary_unwrap = "allow"
useless_conversion = "allow"
useless_vec = "allow"
while_let_loop = "allow"