comparison src/Grids/zero_dim_grid.jl @ 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 8b9a77d2dc91
children dbddd0f61bde
comparison
equal deleted inserted replaced
1261:a4834779cd6d 1262:5e28ae42caf2
4 """ 4 """
5 struct ZeroDimGrid{T} <: Grid{T,0} 5 struct ZeroDimGrid{T} <: Grid{T,0}
6 point::T 6 point::T
7 end 7 end
8 8
9 # # Indexing interface 9 # Indexing interface
10 Base.getindex(g::ZeroDimGrid) = g.point 10 Base.getindex(g::ZeroDimGrid) = g.point
11 Base.eachindex(g::ZeroDimGrid) = CartesianIndices(()) 11 Base.eachindex(g::ZeroDimGrid) = CartesianIndices(())
12 12
13 # # Iteration interface 13 # Iteration interface
14 Base.iterate(g::ZeroDimGrid) = (g.point, nothing) 14 Base.iterate(g::ZeroDimGrid) = (g.point, nothing)
15 Base.iterate(g::ZeroDimGrid, ::Any) = nothing 15 Base.iterate(g::ZeroDimGrid, ::Any) = nothing
16 16
17 Base.IteratorSize(::Type{ZeroDimGrid{T}}) where T = Base.HasShape{0}() 17 Base.IteratorSize(::Type{<:ZeroDimGrid}) = Base.HasShape{0}()
18 Base.eltype(::Type{ZeroDimGrid{T}}) where T = T
19 Base.length(g::ZeroDimGrid) = 1 18 Base.length(g::ZeroDimGrid) = 1
20 Base.size(g::ZeroDimGrid) = () 19 Base.size(g::ZeroDimGrid) = ()