It was brought to my attention that the buildStruct() function, when used from Java, requires the lambda expression to return Unit.INSTANCE, which is really ugly for Java consumers of this library.
I've marked the buildStruct() function as deprecated, and replaced it with ionStructOf() overloads—one for Java that accepts Consumer<MutableStructFields> and one that is hidden from Java that accepts MutableStructFields.() -> Unit.
While I was making these changes, I discovered that the package directive in the "demo" test cases did not match the file location, so I fixed those as well.
I also fixed some doc comments in MutableStructFields.
Finally, I also realized that MutableStructFields would be a little nicer to use from Java if it was a proper builder class (i.e. with methods that return this). I've created #98 because I don't know whether it's worth adding yet another way to create a struct, and completely replacing MutableStructFields would be a breaking change.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Issue #, if available:
None
Description of changes:
It was brought to my attention that the
buildStruct()
function, when used from Java, requires the lambda expression to returnUnit.INSTANCE
, which is really ugly for Java consumers of this library.I've marked the
buildStruct()
function as deprecated, and replaced it withionStructOf()
overloads—one for Java that acceptsConsumer<MutableStructFields>
and one that is hidden from Java that acceptsMutableStructFields.() -> Unit
.While I was making these changes, I discovered that the package directive in the "demo" test cases did not match the file location, so I fixed those as well.
I also fixed some doc comments in
MutableStructFields
.Finally, I also realized that
MutableStructFields
would be a little nicer to use from Java if it was a proper builder class (i.e. with methods that returnthis
). I've created #98 because I don't know whether it's worth adding yet another way to create a struct, and completely replacingMutableStructFields
would be a breaking change.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.