| | 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 |