From fb2aec1a8773761c28caacfed5b131e0487b96f8 Mon Sep 17 00:00:00 2001 From: Norman Date: Tue, 17 Jan 2023 17:39:43 +0800 Subject: [PATCH] Remove more lines --- src/columns.jl | 12 ++++++------ src/table.jl | 53 ++++++-------------------------------------------- 2 files changed, 12 insertions(+), 53 deletions(-) diff --git a/src/columns.jl b/src/columns.jl index d5fcd8e..41fe865 100644 --- a/src/columns.jl +++ b/src/columns.jl @@ -60,7 +60,7 @@ Base.@propagate_inbounds function Base.getindex(cols::ReadStatColumns, i::Int) 17, # 16 ifs and 1 else i -> m === i+1, i -> @static(i+1 === 10 ? getfield(cols, m)[n][1] : getfield(cols, m)[n]), - i -> error("Invalid index $m") + i -> error("invalid index $m") ) end @@ -70,7 +70,7 @@ Base.@propagate_inbounds function Base.getindex(cols::ReadStatColumns, r, c::Int 17, # 16 ifs and 1 else i -> m === i+1, i -> @static(i+1 === 10 ? getindex(getfield(cols, m)[n][1], r) : getindex(getfield(cols, m)[n], r)), - i -> error("Invalid index $m") + i -> error("invalid index $m") ) end @@ -80,7 +80,7 @@ Base.@propagate_inbounds function Base.setindex!(cols::ReadStatColumns, v, r::In 17, # 16 ifs and 1 else i -> m === i+1, i -> @static(i+1 === 10 ? setindex!(getfield(cols, m)[n][1], v, r) : setindex!(getfield(cols, m)[n], v, r)), - i -> error("Invalid index $m") + i -> error("invalid index $m") ) end @@ -298,7 +298,7 @@ Base.@propagate_inbounds function Base.getindex(cols::ChainedReadStatColumns, i: 24, # 23 ifs and 1 else i -> m === i+1, i -> getfield(cols, m)[n], - i -> error("Invalid index $m") + i -> error("invalid index $m") ) end @@ -308,7 +308,7 @@ Base.@propagate_inbounds function Base.getindex(cols::ChainedReadStatColumns, r, 24, # 23 ifs and 1 else i -> m === i+1, i -> getindex(getfield(cols, m)[n], r), - i -> error("Invalid index $m") + i -> error("invalid index $m") ) end @@ -318,7 +318,7 @@ Base.@propagate_inbounds function Base.setindex!(cols::ChainedReadStatColumns, v 24, # 23 ifs and 1 else i -> m === i+1, i -> setindex!(getfield(cols, m)[n], v, r), - i -> error("Invalid index $m") + i -> error("invalid index $m") ) end diff --git a/src/table.jl b/src/table.jl index f650cdf..89eadf4 100644 --- a/src/table.jl +++ b/src/table.jl @@ -270,53 +270,12 @@ end Base.@propagate_inbounds function getcolumnfast(tb::ReadStatTable{ChainedReadStatColumns}, i::Int) cols = _columns(tb) m, n = getfield(cols, 1)[i] - if m === 2 - return getfield(cols, 2)[n] - elseif m === 3 - return getfield(cols, 3)[n] - elseif m === 4 - return getfield(cols, 4)[n] - elseif m === 5 - return getfield(cols, 5)[n] - elseif m === 6 - return getfield(cols, 6)[n] - elseif m === 7 - return getfield(cols, 7)[n] - elseif m === 8 - return getfield(cols, 8)[n] - elseif m === 9 - return getfield(cols, 9)[n] - elseif m === 10 - return getfield(cols, 10)[n] - elseif m === 11 - return getfield(cols, 11)[n] - elseif m === 12 - return getfield(cols, 12)[n] - elseif m === 13 - return getfield(cols, 13)[n] - elseif m === 14 - return getfield(cols, 14)[n] - elseif m === 15 - return getfield(cols, 15)[n] - elseif m === 16 - return getfield(cols, 16)[n] - elseif m === 17 - return getfield(cols, 17)[n] - elseif m === 18 - return getfield(cols, 18)[n] - elseif m === 19 - return getfield(cols, 19)[n] - elseif m === 20 - return getfield(cols, 20)[n] - elseif m === 21 - return getfield(cols, 21)[n] - elseif m === 22 - return getfield(cols, 22)[n] - elseif m === 23 - return getfield(cols, 23)[n] - elseif m === 24 - return getfield(cols, 24)[n] - end + Base.Cartesian.@nif( + 24, # 23 ifs and 1 else + i -> m === i+1, + i -> getfield(cols, i+1)[n], + i -> error("invalid index $m") + ) end Base.@propagate_inbounds function Tables.getcolumn(tb::ReadStatTable, i::Int)