Skip to content

Commit aa1612e

Browse files
charleskawczynskirafaqz
authored andcommitted
Make AccessCountDiskArray a subtype of AbstractDiskArray
1 parent ccd3092 commit aa1612e

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

src/DiskArrays.jl

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,28 @@ macro implement_diskarray(t)
4949
end
5050
end
5151

52+
# https://github.com/meggart/DiskArrays.jl/issues/175
53+
macro implement_diskarray_skip_zip(t)
54+
# Need to do this for dispatch ambiguity
55+
t = esc(t)
56+
quote
57+
@implement_getindex $t
58+
@implement_setindex $t
59+
@implement_broadcast $t
60+
@implement_iteration $t
61+
@implement_mapreduce $t
62+
@implement_reshape $t
63+
@implement_array_methods $t
64+
@implement_permutedims $t
65+
@implement_subarray $t
66+
@implement_cat $t
67+
@implement_show $t
68+
@implement_generator $t
69+
end
70+
end
71+
5272
# We need to skip the `implement_zip` macro for dispatch
53-
@implement_getindex AbstractDiskArray
54-
@implement_setindex AbstractDiskArray
55-
@implement_broadcast AbstractDiskArray
56-
@implement_iteration AbstractDiskArray
57-
@implement_mapreduce AbstractDiskArray
58-
@implement_reshape AbstractDiskArray
59-
@implement_array_methods AbstractDiskArray
60-
@implement_permutedims AbstractDiskArray
61-
@implement_subarray AbstractDiskArray
62-
@implement_cat AbstractDiskArray
63-
@implement_generator AbstractDiskArray
64-
@implement_show AbstractDiskArray
73+
@implement_diskarray_skip_zip AbstractDiskArray
6574

6675
#And we define the test types
6776
include("util/testtypes.jl")

src/util/testtypes.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ and optimise chunk access.
1414
`getindex_count(A)` and `setindex_count(A)` can be used to check the
1515
the counters.
1616
"""
17-
struct AccessCountDiskArray{T,N,A<:AbstractArray{T,N},RS} <: AbstractArray{T,N}
17+
struct AccessCountDiskArray{T,N,A<:AbstractArray{T,N},RS} <: DiskArrays.AbstractDiskArray{T,N}
1818
getindex_log::Vector{Any}
1919
setindex_log::Vector{Any}
2020
parent::A
@@ -28,7 +28,7 @@ AccessCountDiskArray(a; chunksize=size(a),batchstrategy=DiskArrays.ChunkRead(Dis
2828
Base.size(a::AccessCountDiskArray) = size(a.parent)
2929

3030
# Apply the all in one macro rather than inheriting
31-
DiskArrays.@implement_diskarray AccessCountDiskArray
31+
DiskArrays.@implement_diskarray_skip_zip AccessCountDiskArray
3232

3333
DiskArrays.haschunks(::AccessCountDiskArray) = DiskArrays.Chunked()
3434
DiskArrays.eachchunk(a::AccessCountDiskArray) = DiskArrays.GridChunks(a, a.chunksize)

0 commit comments

Comments
 (0)