1- immutable ArrayPartition{T}
1+ immutable ArrayPartition{T} <: AbstractVector{Any}
22 x:: T
33end
44ArrayPartition (x... ) = ArrayPartition ((x... ))
@@ -11,7 +11,8 @@ function ArrayPartition{T,T2<:Tuple}(x::T2,::Type{Val{T}}=Val{false})
1111end
1212Base. similar (A:: ArrayPartition ) = ArrayPartition ((similar .(A. x)). .. )
1313Base. similar (A:: ArrayPartition , dims:: Tuple ) = ArrayPartition (similar .(A. x, dims)... )
14- Base. similar (A:: ArrayPartition , T, dims:: Tuple ) = ArrayPartition (similar .(A. x, T, dims)... )
14+ Base. similar {T} (A:: ArrayPartition , :: Type{T} ) = ArrayPartition (similar .(A. x, T)... )
15+ Base. similar {T} (A:: ArrayPartition , :: Type{T} , dims:: Tuple ) = ArrayPartition (similar .(A. x, T, dims)... )
1516
1617Base. copy (A:: ArrayPartition ) = Base. similar (A)
1718Base. zeros (A:: ArrayPartition ) = ArrayPartition ((zeros (x) for x in A. x). .. )
@@ -78,9 +79,14 @@ Base.done(A::ArrayPartition,state) = done(chain(A.x...),state)
7879
7980Base. length (A:: ArrayPartition ) = sum ((length (x) for x in A. x))
8081Base. size (A:: ArrayPartition ) = (length (A),)
81- Base. indices (A:: ArrayPartition ) = ((indices (x) for x in A. x). .. )
8282Base. eachindex (A:: ArrayPartition ) = Base. OneTo (length (A))
8383
84+ # restore the type rendering in Juno
85+ Juno. @render Juno. Inline x:: ArrayPartition begin
86+ fields = fieldnames (typeof (x))
87+ Juno. LazyTree (typeof (x), () -> [Juno. SubTree (Juno. Text (" $f → " ), Juno. getfield′ (x, f)) for f in fields])
88+ end
89+
8490add_idxs (x,expr) = expr
8591add_idxs {T<:ArrayPartition} (:: Type{T} ,expr) = :($ (expr). x[i])
8692
0 commit comments