wiedld opened a new pull request, #6927: URL: https://github.com/apache/arrow-rs/pull/6927
# Which issue does this PR close? Noticed during a [code review](https://github.com/apache/arrow-rs/pull/6849#discussion_r1896417566), where declarative macros were being used in place of defined interfaces for common functionality. # Rationale for this change The [ArrayBuilder](https://docs.rs/arrow/54.0.0/arrow/array/trait.ArrayBuilder.html) defines the minimum set of builder interfaces for runtime. Some common interfaces are not included, such as building lists of values or lists-of-lists. These interfaces are presumably not included since the ArrayBuilder includes the minimum common set for generics, and handle very different bytes layouts (and runtime interfaces) such as [MapBuilder](https://docs.rs/arrow/54.0.0/arrow/array/struct.MapBuilder.html). However, it may be worthwhile to define ArrayBuilder subtraits when its worthwhile for common runtime interactions -- such as building a list of values (the example done in this PR). # What changes are included in this PR? * commit 1 = define `trait ValuesBuilder: ArrayBuilder`, and implement for only those byte array builders * note: other builder could use this trait, I was doing a minimum starting change * commit 2 = bring trait into scope when used * commit 3 = replace macro `process_regexp_match` with generic function * commit 4 = replace macro `process_regexp_array_match` with generic function # Are there any user-facing changes? A new subtrait is defined. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
