Skip to content

Commit 695120f

Browse files
authored
Add unavailable functions for Frequency gen for compiler below 6.2
1 parent d4abe36 commit 695120f

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

Sources/PropertyBased/Gen+Frequency.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// Created by Lennard Sprong on 20/06/2025.
66
//
77

8-
#if swift(>=6.2)
98
extension Gen {
9+
#if swift(>=6.2)
1010
/// Produces a generator that randomly selects one of the provided generators.
1111
///
1212
/// Every generator has an equal chance of being run.
@@ -32,6 +32,7 @@ extension Gen {
3232
/// - Parameter generators: The generators to choose from.
3333
/// - Returns: A new generator.
3434
@_documentation(visibility: internal)
35+
@available(swift 6.2)
3536
public static func oneOf<Input>(_ generators: Generator<Value, AnySequence<Input>>...)
3637
-> Generator<Value, AnySequence<(index: Int, value: Input)>>
3738
{
@@ -63,6 +64,7 @@ extension Gen {
6364
/// - Parameter generators: The generators to choose from, with a weight for each.
6465
/// - Returns: A new generator.
6566
@_documentation(visibility: internal)
67+
@available(swift 6.2)
6668
public static func frequency<Input>(
6769
_ generators: [(weight: FloatLiteralType, gen: Generator<Value, AnySequence<Input>>)]
6870
)
@@ -99,6 +101,8 @@ extension Gen {
99101
)
100102
}
101103

104+
#endif // swift(>=6.2)
105+
102106
/// Produces a generator that randomly selects one of the provided generators.
103107
///
104108
/// Every generator has an equal chance of being run.
@@ -123,17 +127,22 @@ extension Gen {
123127
///
124128
/// - Parameter generators: The generators to choose from.
125129
/// - Returns: A new generator.
130+
@available(swift 6.2)
126131
@_disfavoredOverload
127132
public static func oneOf<each Seq: Sequence>(_ generators: repeat Generator<Value, each Seq>)
128133
-> Generator<Value, AnySequence<(index: Int, value: Any)>>
129134
{
135+
#if swift(>=6.2)
130136
var gens: [(weight: FloatLiteralType, gen: Generator<Value, AnySequence<Any>>)] = []
131137

132138
for gen in repeat each generators {
133139
gens.append((weight: 1.0, gen.eraseToAny()))
134140
}
135141

136142
return frequency(gens)
143+
#else
144+
fatalError("Not supported by Swift compiler below 6.2")
145+
#endif
137146
}
138147

139148
/// Produces a generator that randomly selects one of the provided generators, with a weighted distribution.
@@ -158,19 +167,23 @@ extension Gen {
158167
///
159168
/// - Parameter generators: The generators to choose from, with a weight for each.
160169
/// - Returns: A new generator.
170+
@available(swift 6.2)
161171
@_disfavoredOverload
162172
public static func frequency<each Seq: Sequence>(
163173
_ generators: repeat (weight: FloatLiteralType, gen: Generator<Value, each Seq>)
164174
)
165175
-> Generator<Value, AnySequence<(index: Int, value: Any)>>
166176
{
177+
#if swift(>=6.2)
167178
var gens: [(weight: FloatLiteralType, gen: Generator<Value, AnySequence<Any>>)] = []
168179

169180
for (weight, gen) in repeat each generators {
170181
gens.append((weight: weight, gen.eraseToAny()))
171182
}
172183

173184
return frequency(gens)
185+
#else
186+
fatalError("Not supported by Swift compiler below 6.2")
187+
#endif
174188
}
175189
}
176-
#endif // swift(>=6.2)

0 commit comments

Comments
 (0)