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]

Reply via email to