Skip to main content

Crate qubit_function

Crate qubit_function 

Source
Expand description

§Qubit Function

Provides functional programming abstractions for Rust, including:

  • Transformer types: Transform values from type T to type R
  • UnaryOperator types: Transform values of type T to the same type T
  • BiTransformer types: Transform two values to produce a result
  • BinaryOperator types: Transform two values of type T to produce a T
  • StatefulBinaryOperator types: Stateful transform two values of type T to produce a T
  • Consumer types: Functions that consume values without returning
  • BiConsumer types: Functions that consume two values without returning
  • Predicate types: Functions that test values and return boolean
  • BiPredicate types: Functions that test two values and return boolean
  • Supplier types: Functions that produce values without input
  • Task types: Fallible zero-argument and mutable-input actions and computations
  • Mapper types: Stateful transformations from type T to type R
  • Tester types: Functions that test conditions without input
  • Comparator types: Functions that compare values and return ordering

§Author

Haixing Hu

Re-exports§

pub use consumers::ArcConsumer;
pub use consumers::ArcStatefulConsumer;
pub use consumers::BoxConsumer;
pub use consumers::BoxConsumerOnce;
pub use consumers::BoxStatefulConsumer;
pub use consumers::Consumer;
pub use consumers::ConsumerOnce;
pub use consumers::FnConsumerOnceOps;
pub use consumers::FnConsumerOps;
pub use consumers::FnStatefulConsumerOps;
pub use consumers::RcConsumer;
pub use consumers::RcStatefulConsumer;
pub use consumers::StatefulConsumer;
pub use consumers::ArcBiConsumer;
pub use consumers::ArcStatefulBiConsumer;
pub use consumers::BiConsumer;
pub use consumers::BiConsumerOnce;
pub use consumers::BoxBiConsumer;
pub use consumers::BoxBiConsumerOnce;
pub use consumers::BoxStatefulBiConsumer;
pub use consumers::FnBiConsumerOnceOps;
pub use consumers::FnBiConsumerOps;
pub use consumers::FnStatefulBiConsumerOps;
pub use consumers::RcBiConsumer;
pub use consumers::RcStatefulBiConsumer;
pub use consumers::StatefulBiConsumer;
pub use functions::ArcFunction;
pub use functions::ArcMutatingFunction;
pub use functions::ArcStatefulFunction;
pub use functions::ArcStatefulMutatingFunction;
pub use functions::BoxFunction;
pub use functions::BoxFunctionOnce;
pub use functions::BoxMutatingFunction;
pub use functions::BoxMutatingFunctionOnce;
pub use functions::BoxStatefulFunction;
pub use functions::BoxStatefulMutatingFunction;
pub use functions::FnFunctionOnceOps;
pub use functions::FnFunctionOps;
pub use functions::FnMutatingFunctionOnceOps;
pub use functions::FnMutatingFunctionOps;
pub use functions::FnStatefulFunctionOps;
pub use functions::FnStatefulMutatingFunctionOps;
pub use functions::Function;
pub use functions::FunctionOnce;
pub use functions::MutatingFunction;
pub use functions::MutatingFunctionOnce;
pub use functions::RcFunction;
pub use functions::RcMutatingFunction;
pub use functions::RcStatefulFunction;
pub use functions::RcStatefulMutatingFunction;
pub use functions::StatefulFunction;
pub use functions::StatefulMutatingFunction;
pub use functions::ArcBiFunction;
pub use functions::ArcBiMutatingFunction;
pub use functions::BiFunction;
pub use functions::BiFunctionOnce;
pub use functions::BiMutatingFunction;
pub use functions::BiMutatingFunctionOnce;
pub use functions::BoxBiFunction;
pub use functions::BoxBiFunctionOnce;
pub use functions::BoxBiMutatingFunction;
pub use functions::BoxBiMutatingFunctionOnce;
pub use functions::FnBiFunctionOnceOps;
pub use functions::FnBiFunctionOps;
pub use functions::FnBiMutatingFunctionOnceOps;
pub use functions::FnBiMutatingFunctionOps;
pub use functions::RcBiFunction;
pub use functions::RcBiMutatingFunction;
pub use functions::ArcBinaryFunction;
pub use functions::ArcBinaryMutatingFunction;
pub use functions::BoxBinaryFunction;
pub use functions::BoxBinaryMutatingFunction;
pub use functions::RcBinaryFunction;
pub use functions::RcBinaryMutatingFunction;
pub use functions::ArcConditionalBiFunction;
pub use functions::ArcConditionalBiMutatingFunction;
pub use functions::ArcConditionalFunction;
pub use functions::ArcConditionalStatefulFunction;
pub use functions::BoxConditionalBiFunction;
pub use functions::BoxConditionalBiMutatingFunction;
pub use functions::BoxConditionalBiMutatingFunctionOnce;
pub use functions::BoxConditionalFunction;
pub use functions::BoxConditionalStatefulFunction;
pub use functions::RcConditionalBiFunction;
pub use functions::RcConditionalBiMutatingFunction;
pub use functions::RcConditionalFunction;
pub use functions::RcConditionalStatefulFunction;
pub use transformers::ArcStatefulBiTransformer;
pub use transformers::ArcStatefulTransformer;
pub use transformers::ArcTransformer;
pub use transformers::BoxStatefulBiTransformer;
pub use transformers::BoxStatefulTransformer;
pub use transformers::BoxTransformer;
pub use transformers::BoxTransformerOnce;
pub use transformers::FnStatefulBiTransformerOps;
pub use transformers::FnStatefulTransformerOps;
pub use transformers::FnTransformerOnceOps;
pub use transformers::FnTransformerOps;
pub use transformers::RcStatefulBiTransformer;
pub use transformers::RcStatefulTransformer;
pub use transformers::RcTransformer;
pub use transformers::StatefulBiTransformer;
pub use transformers::StatefulTransformer;
pub use transformers::Transformer;
pub use transformers::TransformerOnce;
pub use transformers::ArcBiTransformer;
pub use transformers::BiTransformer;
pub use transformers::BiTransformerOnce;
pub use transformers::BoxBiTransformer;
pub use transformers::BoxBiTransformerOnce;
pub use transformers::FnBiTransformerOnceOps;
pub use transformers::FnBiTransformerOps;
pub use transformers::RcBiTransformer;
pub use transformers::ArcBinaryOperator;
pub use transformers::BinaryOperator;
pub use transformers::BinaryOperatorOnce;
pub use transformers::BoxBinaryOperator;
pub use transformers::BoxBinaryOperatorOnce;
pub use transformers::RcBinaryOperator;
pub use transformers::ArcStatefulBinaryOperator;
pub use transformers::BoxStatefulBinaryOperator;
pub use transformers::RcStatefulBinaryOperator;
pub use transformers::StatefulBinaryOperator;
pub use transformers::ArcUnaryOperator;
pub use transformers::BoxUnaryOperator;
pub use transformers::BoxUnaryOperatorOnce;
pub use transformers::RcUnaryOperator;
pub use transformers::UnaryOperator;
pub use transformers::UnaryOperatorOnce;
pub use transformers::ArcConditionalStatefulBiTransformer;
pub use transformers::ArcConditionalStatefulTransformer;
pub use transformers::ArcConditionalTransformer;
pub use transformers::BoxConditionalStatefulBiTransformer;
pub use transformers::BoxConditionalStatefulTransformer;
pub use transformers::BoxConditionalTransformer;
pub use transformers::BoxConditionalTransformerOnce;
pub use transformers::RcConditionalStatefulBiTransformer;
pub use transformers::RcConditionalStatefulTransformer;
pub use transformers::RcConditionalTransformer;
pub use mutators::ArcConditionalMutator;
pub use mutators::ArcConditionalStatefulMutator;
pub use mutators::ArcMutator;
pub use mutators::ArcStatefulMutator;
pub use mutators::BoxConditionalMutator;
pub use mutators::BoxConditionalMutatorOnce;
pub use mutators::BoxConditionalStatefulMutator;
pub use mutators::BoxMutator;
pub use mutators::BoxMutatorOnce;
pub use mutators::BoxStatefulMutator;
pub use mutators::FnMutStatefulMutatorOps;
pub use mutators::FnMutatorOnceOps;
pub use mutators::FnMutatorOps;
pub use mutators::Mutator;
pub use mutators::MutatorOnce;
pub use mutators::RcConditionalMutator;
pub use mutators::RcConditionalStatefulMutator;
pub use mutators::RcMutator;
pub use mutators::RcStatefulMutator;
pub use mutators::StatefulMutator;
pub use predicates::ArcPredicate;
pub use predicates::BoxPredicate;
pub use predicates::FnPredicateOps;
pub use predicates::Predicate;
pub use predicates::RcPredicate;
pub use predicates::ArcBiPredicate;
pub use predicates::BiPredicate;
pub use predicates::BoxBiPredicate;
pub use predicates::FnBiPredicateOps;
pub use predicates::RcBiPredicate;
pub use suppliers::ArcStatefulSupplier;
pub use suppliers::ArcSupplier;
pub use suppliers::BoxStatefulSupplier;
pub use suppliers::BoxSupplier;
pub use suppliers::BoxSupplierOnce;
pub use suppliers::FnStatefulSupplierOps;
pub use suppliers::RcStatefulSupplier;
pub use suppliers::RcSupplier;
pub use suppliers::StatefulSupplier;
pub use suppliers::Supplier;
pub use suppliers::SupplierOnce;
pub use tasks::ArcCallable;
pub use tasks::ArcCallableWith;
pub use tasks::ArcRunnable;
pub use tasks::ArcRunnableWith;
pub use tasks::BoxCallable;
pub use tasks::BoxCallableOnce;
pub use tasks::BoxCallableWith;
pub use tasks::BoxRunnable;
pub use tasks::BoxRunnableOnce;
pub use tasks::BoxRunnableWith;
pub use tasks::Callable;
pub use tasks::CallableOnce;
pub use tasks::CallableWith;
pub use tasks::RcCallable;
pub use tasks::RcCallableWith;
pub use tasks::RcRunnable;
pub use tasks::RcRunnableWith;
pub use tasks::Runnable;
pub use tasks::RunnableOnce;
pub use tasks::RunnableWith;
pub use comparator::ArcComparator;
pub use comparator::BoxComparator;
pub use comparator::Comparator;
pub use comparator::FnComparatorOps;
pub use comparator::RcComparator;
pub use tester::ArcTester;
pub use tester::BoxTester;
pub use tester::FnTesterOps;
pub use tester::RcTester;
pub use tester::Tester;

Modules§

comparator
Comparator Abstraction
consumers
Consumers Module
functions
Functions Module
macros
Macros Module
mutators
Mutators Module
predicates
Predicates Module
suppliers
Suppliers Module
tasks
Task Function Module
tester
Tester Type
transformers
Transformers Module

Macros§

impl_fn_ops_trait
Generate extension traits and implementations for closure types