diff --git a/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala b/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala index ac38ac7..ea3254b 100644 --- a/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala +++ b/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala @@ -52,6 +52,16 @@ object Datagen: */ def gen(): A = generate(()) + /** Satisfy the target generator (that requires input) using this generator + * to provide that input. + * + * @param target + * The target generator. + * @return + * The new input-satisfied generator. + */ + def satisfy[B](target: Datagen[B, A]): Gen[B] = target.toGen(gen()) + def flatMap[B](f: A => NoInput[B]): NoInput[B] = new NoInput.Defer[B](() => f(generate(())).generate(()))