[package]
edition = "2024"
name = "fp-library"
version = "0.17.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A functional programming library for Rust featuring your favourite higher-kinded types and type classes."
readme = "README.md"
keywords = [
"functional",
"higher-kinded",
"hkt",
"types",
]
categories = [
"algorithms",
"data-structures",
"rust-patterns",
]
license = "BlueOak-1.0.0"
repository = "https://github.com/nothingnesses/rust-fp-library"
[package.metadata.docs.rs]
all-features = true
[features]
default = []
rayon = ["dep:rayon"]
serde = ["dep:serde"]
stacker = ["dep:stacker"]
[lib]
name = "fp_library"
path = "src/lib.rs"
[[test]]
name = "ado_notation"
path = "tests/ado_notation.rs"
[[test]]
name = "brand_inference_integration"
path = "tests/brand_inference_integration.rs"
[[test]]
name = "closure_directed_inference_poc"
path = "tests/closure_directed_inference_poc.rs"
[[test]]
name = "compile_fail"
path = "tests/compile_fail.rs"
[[test]]
name = "dispatch_borrow_feasibility"
path = "tests/dispatch_borrow_feasibility.rs"
[[test]]
name = "do_notation"
path = "tests/do_notation.rs"
[[test]]
name = "hkt_integration"
path = "tests/hkt_integration.rs"
[[test]]
name = "lifetime_turbofish_test"
path = "tests/lifetime_turbofish_test.rs"
[[test]]
name = "multi_brand_integration"
path = "tests/multi_brand_integration.rs"
[[test]]
name = "non_regression_single_brand"
path = "tests/non_regression_single_brand.rs"
[[test]]
name = "optics_test"
path = "tests/optics_test.rs"
[[test]]
name = "poc_apply_unified_dispatch"
path = "tests/poc_apply_unified_dispatch.rs"
[[test]]
name = "poc_fn_brand_inference"
path = "tests/poc_fn_brand_inference.rs"
[[test]]
name = "pointer_integration"
path = "tests/pointer_integration.rs"
[[test]]
name = "pointer_non_regression"
path = "tests/pointer_non_regression.rs"
[[test]]
name = "ref_borrow_feasibility"
path = "tests/ref_borrow_feasibility.rs"
[[test]]
name = "ref_traverse_direct"
path = "tests/ref_traverse_direct.rs"
[[test]]
name = "slot_apply_poc"
path = "tests/slot_apply_poc.rs"
[[test]]
name = "slot_arity2_poc"
path = "tests/slot_arity2_poc.rs"
[[test]]
name = "slot_assoc_marker_poc"
path = "tests/slot_assoc_marker_poc.rs"
[[test]]
name = "slot_bind_poc"
path = "tests/slot_bind_poc.rs"
[[test]]
name = "slot_closureless_poc"
path = "tests/slot_closureless_poc.rs"
[[test]]
name = "slot_generic_fixed_param_poc"
path = "tests/slot_generic_fixed_param_poc.rs"
[[test]]
name = "slot_marker_via_slot_poc"
path = "tests/slot_marker_via_slot_poc.rs"
[[test]]
name = "slot_production_poc"
path = "tests/slot_production_poc.rs"
[[test]]
name = "slot_select_brand_poc"
path = "tests/slot_select_brand_poc.rs"
[[test]]
name = "slot_valref_poc"
path = "tests/slot_valref_poc.rs"
[[test]]
name = "stack_safety"
path = "tests/stack_safety.rs"
[[test]]
name = "thread_safety"
path = "tests/thread_safety.rs"
[[bench]]
name = "benchmarks"
path = "benches/benchmarks.rs"
harness = false
[dependencies.fp-macros]
version = "0.8"
[dependencies.rayon]
version = "1.11"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.stacker]
version = "0.1"
optional = true
[dependencies.thiserror]
version = "2.0"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.quickcheck]
version = "1.0"
[dev-dependencies.quickcheck_macros]
version = "1.1"
[dev-dependencies.trybuild]
version = "1.0"
[lints.clippy]
expect_used = "warn"
indexing_slicing = "warn"
panic = "warn"
todo = "warn"
unimplemented = "warn"
unreachable = "warn"
unwrap_used = "warn"