qubit-function 0.17.0

Functional programming traits and Box/Rc/Arc adapters for Rust, inspired by Java functional interfaces
[package]
name = "qubit-function"
version = "0.17.0"
edition = "2024"
rust-version = "1.94"
authors = ["Haixing Hu <starfish.hu@gmail.com>"]
license = "Apache-2.0"
repository = "https://github.com/qubit-ltd/rs-function"
description = "Functional programming traits and Box/Rc/Arc adapters for Rust, inspired by Java functional interfaces"
homepage = "https://github.com/qubit-ltd/rs-function"
documentation = "https://docs.rs/qubit-function"
readme = "README.md"
keywords = ["functional", "predicate", "function", "consumer", "supplier"]
categories = ["development-tools", "rust-patterns"]
include = [
    "/Cargo.toml",
    "/LICENSE",
    "/README.md",
    "/README.zh_CN.md",
    "/RUST_CODING_STYLE.md",
    "/RUST_CODING_STYLE.zh_CN.md",
    "/doc/**/user_guide*.md",
    "/examples/**",
    "/resources/**",
    "/src/**",
    "/tests/**",
    "/fuzz/**",
    "/benches/**",
]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(docsrs)"] }

[lib]
name = "qubit_function"
doctest = true

[features]
default = []
rc = []
once = []
stateful = ["dep:parking_lot"]
full = ["rc", "once", "stateful"]

[dependencies]
parking_lot = { version = "0.12", optional = true }

[dev-dependencies]
qubit-local-files = { version = "0.2" }

[[example]]
name = "always_bi_predicate_demo"
path = "examples/predicates/always_bi_predicate_demo.rs"
required-features = ["rc"]

[[example]]
name = "always_predicate_demo"
path = "examples/predicates/always_predicate_demo.rs"
required-features = ["rc"]

[[example]]
name = "bi_consumer_demo"
path = "examples/consumers/bi_consumer_demo.rs"
required-features = ["rc", "stateful"]

[[example]]
name = "bi_consumer_once_demo"
path = "examples/consumers/bi_consumer_once_demo.rs"
required-features = ["once"]

[[example]]
name = "bi_transformer_and_then_demo"
path = "examples/transformers/bi_transformer_and_then_demo.rs"
required-features = ["rc"]

[[example]]
name = "bi_transformer_demo"
path = "examples/transformers/bi_transformer_demo.rs"
required-features = ["rc"]

[[example]]
name = "bi_transformer_once_and_then_demo"
path = "examples/transformers/bi_transformer_once_and_then_demo.rs"
required-features = ["once"]

[[example]]
name = "bi_transformer_once_demo"
path = "examples/transformers/bi_transformer_once_demo.rs"
required-features = ["once"]

[[example]]
name = "comparator_demo"
path = "examples/comparator/comparator_demo.rs"
required-features = ["rc"]

[[example]]
name = "consumer_demo"
path = "examples/consumers/consumer_demo.rs"
required-features = ["rc", "stateful"]

[[example]]
name = "consumer_fn_usage"
path = "examples/consumers/consumer_fn_usage.rs"
required-features = ["rc"]

[[example]]
name = "consumer_once_demo"
path = "examples/consumers/consumer_once_demo.rs"
required-features = ["once"]

[[example]]
name = "function_family_demo"
path = "examples/functions/function_family_demo.rs"
required-features = ["once", "stateful"]

[[example]]
name = "mutator_demo"
path = "examples/mutators/mutator_demo.rs"
required-features = ["rc"]

[[example]]
name = "mutator_once_conditional_demo"
path = "examples/mutators/mutator_once_conditional_demo.rs"
required-features = ["once"]

[[example]]
name = "mutator_once_demo"
path = "examples/mutators/mutator_once_demo.rs"
required-features = ["once"]

[[example]]
name = "predicate_demo"
path = "examples/predicates/predicate_demo.rs"
required-features = ["rc"]

[[example]]
name = "predicate_fn_mut_demo"
path = "examples/predicates/predicate_fn_mut_demo.rs"
required-features = ["rc"]

[[example]]
name = "predicate_set_name_demo"
path = "examples/predicates/predicate_set_name_demo.rs"
required-features = ["rc"]

[[example]]
name = "bi_consumer_observation_demo"
path = "examples/consumers/bi_consumer_observation_demo.rs"
required-features = ["rc"]

[[example]]
name = "stateful_supplier_demo"
path = "examples/suppliers/stateful_supplier_demo.rs"
required-features = ["rc", "once", "stateful"]

[[example]]
name = "stateful_transformer_demo"
path = "examples/transformers/stateful_transformer_demo.rs"
required-features = ["rc", "once", "stateful"]

[[example]]
name = "task_demo"
path = "examples/tasks/task_demo.rs"
required-features = ["once", "stateful"]

[[example]]
name = "tester_demo"
path = "examples/tester/tester_demo.rs"
required-features = ["rc"]

[[example]]
name = "transformer_blanket_impl_demo"
path = "examples/transformers/transformer_blanket_impl_demo.rs"
required-features = ["rc"]

[[example]]
name = "transformer_demo"
path = "examples/transformers/transformer_demo.rs"
required-features = ["rc"]

[[example]]
name = "transformer_once_blanket_impl_demo"
path = "examples/transformers/transformer_once_blanket_impl_demo.rs"
required-features = ["once"]

[[example]]
name = "transformer_once_demo"
path = "examples/transformers/transformer_once_demo.rs"
required-features = ["rc", "once"]