You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Platob (via GitHub)" <gi...@apache.org> on 2023/04/22 20:06:53 UTC

[GitHub] [arrow] Platob opened a new issue, #35285: [C#] Need refacto IArrowArrayBuilder for nested types

Platob opened a new issue, #35285:
URL: https://github.com/apache/arrow/issues/35285

   ### Describe the bug, including details regarding any error messages, version, and platform.
   
   Hello,
   
   The interfaces IArrowArrayBuilder<out TArray, out TBuilder> forces the dev to return TBuilder
   
   It makes harder the devs on nested structures
   
   I don't see how it is necessary since its as the same behavior as void, its just cleaner for one line code if we want do it
   
   Is it possible to move value append methods in IArrowArrayBuilder<out TArray> ?
   
   ```c#
   public interface IArrowArrayBuilder
       {
           int Length { get; }
       }
   
       public interface IArrowArrayBuilder<out TArray> : IArrowArrayBuilder
           where TArray : IArrowArray
       {
           TArray Build(MemoryAllocator allocator);
       }
   
       public interface IArrowArrayBuilder<out TArray, out TBuilder> : IArrowArrayBuilder<TArray>
           where TArray : IArrowArray
           where TBuilder : IArrowArrayBuilder<TArray>
       {
           TBuilder Reserve(int capacity);
           TBuilder Resize(int length);
           TBuilder Clear();
       }
   
   
       public interface IArrowArrayBuilder<T, out TArray, out TBuilder> : IArrowArrayBuilder<TArray, TBuilder>
           where TArray : IArrowArray
           where TBuilder : IArrowArrayBuilder<TArray>
       {
           TBuilder Append(T value);
           TBuilder Append(ReadOnlySpan<T> span);
           TBuilder AppendRange(IEnumerable<T> values);
           TBuilder AppendNull();
           TBuilder Swap(int i, int j);
           TBuilder Set(int index, T value);
       }
   ```
   
   ### Component(s)
   
   C#


-- 
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: issues-unsubscribe@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org