| | | 1 | | # Tables.jl interface |
| | 1 | 2 | | Tables.istable(::Type{<:JSONWorksheet}) = true |
| | 1 | 3 | | Tables.isrowtable(::Type{<:JSONWorksheet}) = true |
| | 1 | 4 | | Tables.rowaccess(::Type{<:JSONWorksheet}) = true |
| | 36 | 5 | | Tables.rows(jws::JSONWorksheet) = jws.data |
| | | 6 | | |
| | 5 | 7 | | Tables.columns(jws::JSONWorksheet) = map(p -> jws[:, p], Tables.columnnames(jws)) |
| | 2 | 8 | | Tables.columnnames(jws::JSONWorksheet) = jws.pointer |
| | 4 | 9 | | Tables.getcolumn(jws::JSONWorksheet, i::Int) = jws[:, i] |
| | 1 | 10 | | function Tables.getcolumn(jws::JSONWorksheet, p::Symbol) |
| | 1 | 11 | | Tables.getcolumn(jws, JSONPointer.Pointer(string(p))) |
| | | 12 | | end |
| | 2 | 13 | | Tables.getcolumn(jws::JSONWorksheet, p::Pointer) = jws[:, p] |
| | | 14 | | |
| | | 15 | | |
| | 0 | 16 | | Tables.materializer(jws::JSONWorksheet) = jws.data |
| | | 17 | | |
| | 3 | 18 | | function Tables.matrix(jws::JSONWorksheet, transpose::Bool=false) |
| | 3 | 19 | | matrix = jws[:, :] |
| | 2 | 20 | | if transpose |
| | 1 | 21 | | return permutedims(matrix) |
| | 1 | 22 | | elseif matrix isa AbstractVector |
| | | 23 | | # always return a matrix, for type stability |
| | 0 | 24 | | return reshape(matrix, :, 1) |
| | | 25 | | else |
| | 1 | 26 | | return matrix |
| | | 27 | | end |
| | | 28 | | end |