Emil Kantis
01/30/2023, 7:39 PMval companyDepartmentArb = Arb.bind<CompanyDepartment>(
Location::class to myLocationArb,
Person::name to Arb.string(codepoints = Codepoint.alphanumeric()),
Person::age to <http://Arb.int|Arb.int>(0..120),
)
Right now you'd have to do:
val companyDepartmentArb = Arb.bind<CompanyDepartment>(
providedArbs = mapOf(Location::class to myLocationArb),
arbsForProperties = mapOf(
Person::name to Arb.string(codepoints = Codepoint.alphanumeric()),
Person::age to <http://Arb.int|Arb.int>(0..120),
)
)
Plus the naming feels a bit off. providedArbs
doesn't say how it's different from arbsForProperties
, but changing it means breaking backwards compat.. Perhaps easiest to just add new methods altogether and deprecate the current ones, but that's also a bit invasive..LeoColman
01/30/2023, 8:09 PMsam
01/30/2023, 9:23 PMmitch
01/30/2023, 9:23 PMEmil Kantis
01/31/2023, 6:41 AMfun Arb.bind(
vararg classArbs: Pair<KClass, Arb>,
propArb: Pair<KProperty, Arb>,
vararg propArbs: Pair<KProperty, Arb>,
)
Generics omitted for readability.. 🙂Emil Kantis
01/31/2023, 7:06 AMLeoColman
01/31/2023, 2:21 PMEmil Kantis
01/31/2023, 2:21 PM