Mercurial > repos > public > sbplib_julia
diff src/Grids/zero_dim_grid.jl @ 1260:8b9a77d2dc91 refactor/grids
Add tests and make them pass for ZeroDimGrid
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 23 Feb 2023 12:22:18 +0100 |
parents | 198ccda331a6 |
children | 5e28ae42caf2 |
line wrap: on
line diff
--- a/src/Grids/zero_dim_grid.jl Thu Feb 23 12:22:00 2023 +0100 +++ b/src/Grids/zero_dim_grid.jl Thu Feb 23 12:22:18 2023 +0100 @@ -1,18 +1,20 @@ -struct ZeroDimGrid{T,S} <: Grid{T,0} - p::S - - function ZeroDimGrid(p) - T = eltype(p) - S = typeof(p) - return new{T,S}(p) - end +""" + ZeroDimGrid{T} <: Grid{T,0} +# TODO +""" +struct ZeroDimGrid{T} <: Grid{T,0} + point::T end -Base.size(g::ZeroDimGrid) = () -Base.getindex(g::ZeroDimGrid) = g.p +# # Indexing interface +Base.getindex(g::ZeroDimGrid) = g.point Base.eachindex(g::ZeroDimGrid) = CartesianIndices(()) -# Indexing interface -# TODO -# Iteration interface -# TODO +# # 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.length(g::ZeroDimGrid) = 1 +Base.size(g::ZeroDimGrid) = ()