Skip to content

Commit f845c84

Browse files
allow enums in utility functions
1 parent d7aafe2 commit f845c84

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "RecursiveArrayTools"
22
uuid = "731186ca-8d62-57ce-b412-fbd966d074cd"
33
authors = ["Chris Rackauckas <[email protected]>"]
4-
version = "2.3.1"
4+
version = "2.3.2"
55

66
[deps]
77
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"

src/utils.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ function recursivecopy!(b::AbstractArray{T,N},a::AbstractArray{T2,N}) where {T<:
1717
end
1818
end
1919

20+
function recursivecopy!(b::AbstractArray{T,N},a::AbstractArray{T2,N}) where {T<:Enum,T2<:Enum,N}
21+
copyto!(b,a)
22+
end
23+
2024
function recursivecopy!(b::AbstractArray{T,N},a::AbstractArray{T2,N}) where {T<:Number,T2<:Number,N}
2125
copyto!(b,a)
2226
end
@@ -82,11 +86,13 @@ recursive_unitless_bottom_eltype(a) = recursive_unitless_bottom_eltype(typeof(a)
8286
recursive_unitless_bottom_eltype(a::Type{T}) where T = recursive_unitless_bottom_eltype(eltype(a))
8387
recursive_unitless_bottom_eltype(a::Type{T}) where {T<:AbstractArray} = recursive_unitless_bottom_eltype(eltype(a))
8488
recursive_unitless_bottom_eltype(a::Type{T}) where {T<:Number} = eltype(a) == Number ? Float64 : typeof(one(eltype(a)))
89+
recursive_unitless_bottom_eltype(::Type{Enum{T}}) where T = T
8590

8691
recursive_unitless_eltype(a) = recursive_unitless_eltype(eltype(a))
8792
recursive_unitless_eltype(a::Type{T}) where {T<:StaticArray} = similar_type(a,recursive_unitless_eltype(eltype(a)))
8893
recursive_unitless_eltype(a::Type{T}) where {T<:Array} = Array{recursive_unitless_eltype(eltype(a)),ndims(a)}
8994
recursive_unitless_eltype(a::Type{T}) where {T<:Number} = typeof(one(eltype(a)))
95+
recursive_unitless_eltype(::Type{<:Enum{T}}) where T = T
9096

9197
recursive_mean(x...) = mean(x...)
9298
function recursive_mean(vecvec::Vector{T}) where T<:AbstractArray

0 commit comments

Comments
 (0)