Crate prism3_function

Crate prism3_function 

Source
Expand description

§Prism3 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
  • 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
  • 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::ArcUnaryOperator;
pub use transformers::BinaryOperator;
pub use transformers::BinaryOperatorOnce;
pub use transformers::BoxBinaryOperator;
pub use transformers::BoxBinaryOperatorOnce;
pub use transformers::BoxUnaryOperator;
pub use transformers::BoxUnaryOperatorOnce;
pub use transformers::RcBinaryOperator;
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 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
tester
Tester Type
transformers
Transformers Module

Macros§

impl_fn_ops_trait
Generate extension traits and implementations for closure types