qubit-function 0.16.0

Functional programming traits and Box/Rc/Arc adapters for Rust, inspired by Java functional interfaces
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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)"]