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