[package]
edition = "2024"
rust-version = "1.94"
name = "qubit-function"
version = "0.16.0"
authors = ["Haixing Hu <starfish.hu@gmail.com>"]
build = false
include = [
"/Cargo.toml",
"/LICENSE",
"/README.md",
"/README.zh_CN.md",
"/examples/**",
"/src/**",
"/tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
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",
]
license = "Apache-2.0"
repository = "https://github.com/qubit-ltd/rs-function"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
full = [
"rc",
"once",
"stateful",
]
once = []
rc = []
stateful = ["dep:parking_lot"]
[lib]
name = "qubit_function"
path = "src/lib.rs"
doctest = true
[[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_observation_demo"
path = "examples/consumers/bi_consumer_observation_demo.rs"
required-features = ["rc"]
[[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 = "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",
]
[[test]]
name = "arc_auto_trait_contract_tests"
path = "tests/arc_auto_trait_contract_tests.rs"
[[test]]
name = "callback_wrapper_contract_tests"
path = "tests/callback_wrapper_contract_tests.rs"
[[test]]
name = "example_manifest_tests"
path = "tests/example_manifest_tests.rs"
[[test]]
name = "feature_contract_discarded_callback_wrappers_trigger_unused_must_use_tests"
path = "tests/feature_contract_discarded_callback_wrappers_trigger_unused_must_use_tests.rs"
[[test]]
name = "feature_contract_tests"
path = "tests/feature_contract_tests.rs"
[[test]]
name = "lib_tests"
path = "tests/lib_tests.rs"
[[test]]
name = "mod"
path = "tests/mod.rs"
[[test]]
name = "once_and_must_use_contract_tests"
path = "tests/once_and_must_use_contract_tests.rs"
[[test]]
name = "reexports_tests"
path = "tests/reexports_tests.rs"
[[test]]
name = "refactor_coverage_tests"
path = "tests/refactor_coverage_tests.rs"
[[test]]
name = "relaxed_bounds_stateful_arc_conditionals_accept_send_non_sync_callbacks_tests"
path = "tests/relaxed_bounds_stateful_arc_conditionals_accept_send_non_sync_callbacks_tests.rs"
[[test]]
name = "relaxed_bounds_tests"
path = "tests/relaxed_bounds_tests.rs"
[[test]]
name = "relaxed_macro_bounds_tests"
path = "tests/relaxed_macro_bounds_tests.rs"
[dependencies.parking_lot]
version = "0.12"
optional = true
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(docsrs)"]