lang_extension/ops/
function.rs

1use std::sync::Arc;
2
3pub type Function<V, R> = Arc<Box<dyn Fn(V) -> R>>;
4
5pub type Action = Arc<Box<dyn Fn()>>;
6
7pub type Supplier<V> = Arc<Box<dyn Fn() -> V>>;
8
9pub type Consumer<V> = Arc<Box<dyn Fn(V)>>;
10
11pub type Predicate<V> = Arc<Box<dyn Fn(V) -> bool>>;
12
13pub type BiFunction<V, V2, R> = Arc<Box<dyn Fn(V, V2) -> R>>;
14
15pub type BiConsumer<V, V2> = Arc<Box<dyn Fn(V, V2)>>;
16
17pub type BiPredicate<V, V2> = Arc<Box<dyn Fn(V, V2) -> bool>>;
18
19pub type FunctionMut<V, R> = Arc<Box<dyn FnMut(V) -> R>>;
20
21pub type ActionMut = Arc<Box<dyn FnMut()>>;
22
23pub type SupplierMut<V> = Arc<Box<dyn FnMut() -> V>>;
24
25pub type ConsumerMut<V> = Arc<Box<dyn FnMut(V)>>;
26
27pub type PredicateMut<V> = Arc<Box<dyn FnMut(V) -> bool>>;
28
29pub type BiFunctionMut<V, V2, R> = Arc<Box<dyn FnMut(V, V2) -> R>>;
30
31pub type BiConsumerMut<V, V2> = Arc<Box<dyn FnMut(V, V2)>>;
32
33pub type BiPredicateMut<V, V2> = Arc<Box<dyn FnMut(V, V2) -> bool>>;
34
35pub type FunctionOnce<V, R> = Arc<Box<dyn FnOnce(V) -> R>>;
36
37pub type ActionOnce = Arc<Box<dyn FnOnce()>>;
38
39pub type SupplierOnce<V> = Arc<Box<dyn FnOnce() -> V>>;
40
41pub type ConsumerOnce<V> = Arc<Box<dyn FnOnce(V)>>;
42
43pub type PredicateOnce<V> = Arc<Box<dyn FnOnce(V) -> bool>>;
44
45pub type BiFunctionOnce<V, V2, R> = Arc<Box<dyn FnOnce(V, V2) -> R>>;
46
47pub type BiConsumerOnce<V, V2> = Arc<Box<dyn FnOnce(V, V2)>>;
48
49pub type BiPredicateOnce<V, V2> = Arc<Box<dyn FnOnce(V, V2) -> bool>>;
50
51pub type FunctionRef<V, R> = Arc<Box<dyn Fn(&V) -> R>>;
52
53pub type ConsumerRef<V> = Arc<Box<dyn Fn(&V)>>;
54
55pub type PredicateRef<V> = Arc<Box<dyn Fn(&V) -> bool>>;
56
57pub type BiFunctionRef<V, V2, R> = Arc<Box<dyn Fn(&V, &V2) -> R>>;
58
59pub type BiConsumerRef<V, V2> = Arc<Box<dyn Fn(&V, &V2)>>;
60
61pub type BiPredicateRef<V, V2> = Arc<Box<dyn Fn(&V, &V2) -> bool>>;
62
63pub type FunctionRefMut<V, R> = Arc<Box<dyn FnMut(&V) -> R>>;
64
65pub type ConsumerRefMut<V> = Arc<Box<dyn FnMut(&V)>>;
66
67pub type PredicateRefMut<V> = Arc<Box<dyn FnMut(&V) -> bool>>;
68
69pub type BiFunctionRefMut<V, V2, R> = Arc<Box<dyn FnMut(&V, &V2) -> R>>;
70
71pub type BiConsumerRefMut<V, V2> = Arc<Box<dyn FnMut(&V, &V2)>>;
72
73pub type BiPredicateRefMut<V, V2> = Arc<Box<dyn FnMut(&V, &V2) -> bool>>;
74
75pub type FunctionRefOnce<V, R> = Arc<Box<dyn FnOnce(&V) -> R>>;
76
77pub type ConsumerRefOnce<V> = Arc<Box<dyn FnOnce(&V)>>;
78
79pub type PredicateRefOnce<V> = Arc<Box<dyn FnOnce(&V) -> bool>>;
80
81pub type BiFunctionRefOnce<V, V2, R> = Arc<Box<dyn FnOnce(&V, &V2) -> R>>;
82
83pub type BiConsumerRefOnce<V, V2> = Arc<Box<dyn FnOnce(&V, &V2)>>;
84
85pub type BiPredicateRefOnce<V, V2> = Arc<Box<dyn FnOnce(&V, &V2) -> bool>>;