Skip to content

Commit 4c7fe84

Browse files
author
Pietro Vertechi
committed
add separate instance based similar
1 parent 0c99241 commit 4c7fe84

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/structarray.jl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ function Base.similar(::Type{StructArray{T, N, C}}, sz::Dims) where {T, N, C}
6969
StructArray{T}(cols)
7070
end
7171

72-
Base.similar(s::S, sz::Tuple) where {S<:StructArray} = similar(S, Base.to_shape(sz))
73-
Base.similar(s::S, sz::Base.DimOrInd...) where {S<:StructArray} = similar(S, Base.to_shape(sz))
74-
Base.similar(s::S) where {S<:StructArray} = similar(S, Base.to_shape(axes(s)))
72+
Base.similar(s::StructArray, sz::Tuple) = similar(s, Base.to_shape(sz))
73+
Base.similar(s::StructArray, sz::Base.DimOrInd...) = similar(s, Base.to_shape(sz))
74+
Base.similar(s::StructArray) = similar(s, Base.to_shape(axes(s)))
75+
function Base.similar(s::StructArray{T}, sz::Dims) where {T}
76+
StructArray{T}(map(typ -> similar(typ, sz), fieldarrays(s)))
77+
end
7578

7679
fieldarrays(s::StructArray) = getfield(s, :fieldarrays)
7780

0 commit comments

Comments
 (0)