rust-key-paths 2.3.0

Keypaths for Rust: Static dispatch implementation (rust-keypaths) and legacy dynamic dispatch (key-paths-core). Type-safe, composable access to nested data structures.
Documentation
[package]
name = "rust-key-paths"
version = "2.3.0"
edition = "2024"
authors = ["Codefonsi <info@codefonsi.com>"]
license = "MPL-2.0"
description = "Keypaths for Rust: Static dispatch implementation (rust-keypaths) and legacy dynamic dispatch (key-paths-core). Type-safe, composable access to nested data structures."
repository = "https://github.com/codefonsi/rust-key-paths"
homepage = "https://github.com/codefonsi/rust-key-paths"
documentation = "https://docs.rs/rust-key-paths"
keywords = ["keypaths", "EnumKeyPath", "type-safe", "WritableKeyPath", "ReadableKeyPath"]
readme = "./README.md"
include = ["src/**/*", "Cargo.toml", "README.md", "LICENSE"]

[dependencies]
async-trait = "0.1"
pin-project = { version = "1.1", optional = true }
tokio = { version = "1.38.0", features = ["sync", "rt", "rt-multi-thread", "macros", "time"], optional = true }
parking_lot = { version = "0.12", optional = true }

[workspace]
resolver = "3" # or "3"
members = [
    "key-paths-derive",
    "key-paths-iter",
]

# Use local rust-key-paths when developing (remove or override when publishing dependents)
[patch.crates-io]
rust-key-paths = { path = "." }


[features]
default = []
parking_lot = ["dep:parking_lot"]
pin_project = ["dep:pin-project"]
tagged_core = ["tagged-core/default"]
tokio = ["dep:tokio"]

[dev-dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
parking_lot = "0.12"
tagged-core = "0.8.0"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.0", features = ["v4", "serde"] }
criterion = { version = "0.5", features = ["html_reports"] }
tokio = { version = "1.38.0", features = ["sync", "rt", "rt-multi-thread", "macros"] }
key-paths-derive = { path = "key-paths-derive" }
key-paths-iter = { path = "key-paths-iter", features = ["rayon", "gpu"] }
num_cpus = "1.16"
rayon = "1.10"
pin-project = "1.1"

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

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

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

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

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

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

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

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

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

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