File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -43,4 +43,32 @@ extension Gen {
43
43
}
44
44
)
45
45
}
46
+
47
+ #if swift(>=6.2)
48
+ public static func oneOf< each Seq : Sequence > ( _ generators: repeat Generator < Value , each Seq > )
49
+ -> Generator < Value , AnySequence < ( index: Int , value: Any ) > >
50
+ {
51
+ var gens : [ ( rate: Float , gen: Generator < Value , AnySequence < Any > > ) ] = [ ]
52
+
53
+ for gen in repeat each generators {
54
+ gens. append ( ( rate: 1.0 , gen. eraseToAny ( ) ) )
55
+ }
56
+
57
+ return frequency ( gens)
58
+ }
59
+
60
+ public static func frequency< each Seq : Sequence > (
61
+ _ generators: repeat ( rate: Float , gen: Generator < Value , each Seq > )
62
+ )
63
+ -> Generator < Value , AnySequence < ( index: Int , value: Any ) > >
64
+ {
65
+ var gens : [ ( rate: Float , gen: Generator < Value , AnySequence < Any > > ) ] = [ ]
66
+
67
+ for (rate, gen) in repeat each generators {
68
+ gens. append ( ( rate: rate, gen. eraseToAny ( ) ) )
69
+ }
70
+
71
+ return frequency ( gens)
72
+ }
73
+ #endif // swift(>=6.2)
46
74
}
You can’t perform that action at this time.
0 commit comments