diff --git a/Project.toml b/Project.toml index 458634f6..1f7e1784 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "RecursiveArrayTools" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" authors = ["Chris Rackauckas "] -version = "2.3.1" +version = "2.3.2" [deps] ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" diff --git a/src/utils.jl b/src/utils.jl index aea572f1..bf74f065 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -17,6 +17,10 @@ function recursivecopy!(b::AbstractArray{T,N},a::AbstractArray{T2,N}) where {T<: end end +function recursivecopy!(b::AbstractArray{T,N},a::AbstractArray{T2,N}) where {T<:Enum,T2<:Enum,N} + copyto!(b,a) +end + function recursivecopy!(b::AbstractArray{T,N},a::AbstractArray{T2,N}) where {T<:Number,T2<:Number,N} copyto!(b,a) end @@ -82,11 +86,13 @@ recursive_unitless_bottom_eltype(a) = recursive_unitless_bottom_eltype(typeof(a) recursive_unitless_bottom_eltype(a::Type{T}) where T = recursive_unitless_bottom_eltype(eltype(a)) recursive_unitless_bottom_eltype(a::Type{T}) where {T<:AbstractArray} = recursive_unitless_bottom_eltype(eltype(a)) recursive_unitless_bottom_eltype(a::Type{T}) where {T<:Number} = eltype(a) == Number ? Float64 : typeof(one(eltype(a))) +recursive_unitless_bottom_eltype(::Type{Enum{T}}) where T = T recursive_unitless_eltype(a) = recursive_unitless_eltype(eltype(a)) recursive_unitless_eltype(a::Type{T}) where {T<:StaticArray} = similar_type(a,recursive_unitless_eltype(eltype(a))) recursive_unitless_eltype(a::Type{T}) where {T<:Array} = Array{recursive_unitless_eltype(eltype(a)),ndims(a)} recursive_unitless_eltype(a::Type{T}) where {T<:Number} = typeof(one(eltype(a))) +recursive_unitless_eltype(::Type{<:Enum{T}}) where T = T recursive_mean(x...) = mean(x...) function recursive_mean(vecvec::Vector{T}) where T<:AbstractArray