Mercurial > repos > public > sbplib_julia
changeset 1262:5e28ae42caf2 refactor/grids
Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 23 Feb 2023 22:29:36 +0100 |
parents | a4834779cd6d |
children | b0819f6b9d4a |
files | src/Grids/equidistant_grid.jl src/Grids/grid.jl src/Grids/zero_dim_grid.jl |
diffstat | 3 files changed, 6 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Grids/equidistant_grid.jl Thu Feb 23 12:23:49 2023 +0100 +++ b/src/Grids/equidistant_grid.jl Thu Feb 23 22:29:36 2023 +0100 @@ -17,8 +17,7 @@ Base.iterate(g::EquidistantGrid) = iterate(g.points) Base.iterate(g::EquidistantGrid, state) = iterate(g.points, state) -Base.IteratorSize(::Type{EquidistantGrid{T,R}}) where {T,R} = Base.HasShape{1}() -Base.eltype(::Type{EquidistantGrid{T}}) where T = T +Base.IteratorSize(::Type{<:EquidistantGrid}) = Base.HasShape{1}() Base.length(g::EquidistantGrid) = length(g.points) Base.size(g::EquidistantGrid) = size(g.points)
--- a/src/Grids/grid.jl Thu Feb 23 12:23:49 2023 +0100 +++ b/src/Grids/grid.jl Thu Feb 23 22:29:36 2023 +0100 @@ -11,8 +11,8 @@ abstract type Grid{T,D} end -Base.ndims(::Grid{T,D}) where {T,D} = D # nidms borde nog vara antalet index som används för att indexera nätet. Snarare än vilken dimension nätet har (tänk ostrukturerat) -Base.eltype(::Grid{T,D}) where {T,D} = T # vad ska eltype vara? Inte T väl... en vektor? SVector{T,D}? +Base.ndims(::Grid{T,D}) where {T,D} = D +Base.eltype(::Type{<:Grid{T}}) where T = T function refine(::Grid) end function coarsen(::Grid) end # Should this be here? What if it is not possible?
--- a/src/Grids/zero_dim_grid.jl Thu Feb 23 12:23:49 2023 +0100 +++ b/src/Grids/zero_dim_grid.jl Thu Feb 23 22:29:36 2023 +0100 @@ -6,15 +6,14 @@ point::T end -# # Indexing interface +# Indexing interface Base.getindex(g::ZeroDimGrid) = g.point Base.eachindex(g::ZeroDimGrid) = CartesianIndices(()) -# # Iteration interface +# Iteration interface Base.iterate(g::ZeroDimGrid) = (g.point, nothing) Base.iterate(g::ZeroDimGrid, ::Any) = nothing -Base.IteratorSize(::Type{ZeroDimGrid{T}}) where T = Base.HasShape{0}() -Base.eltype(::Type{ZeroDimGrid{T}}) where T = T +Base.IteratorSize(::Type{<:ZeroDimGrid}) = Base.HasShape{0}() Base.length(g::ZeroDimGrid) = 1 Base.size(g::ZeroDimGrid) = ()