JuliaArrays / JuliaArrays/StructArrays.jl
Relax `LazyRow` for other packages
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 402
- Forks
- 49
- PR merge metrics
- No merged PRs in 30d
Description
There's no reason why LazyRow can only work with StructArray, for example we had this for a while now:
https://github.com/JuliaHEP/UnROOT.jl/blob/5f9ae4f21f04bf61f56f0ccabe7942754e07f7d9/src/iteration.jl#L196-L199
but essentially for any table-like structure, we simply have:
@inline function Base.getproperty(evt::LazyEvent, s::Symbol)
@inbounds getproperty(Core.getfield(evt, :tree), s)[Core.getfield(evt, :idx)]
end
and basically this is just saying LazyRow wraps a object that support parent.col[idx]
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked UnROOT implementation and the LazyEvent.getproperty snippet to trace how LazyRow currently assumes StructArray. Determine the generic table-like contract represented by parent.col[idx], then verify the behavior for non-StructArray inputs and add coverage for the supported cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100