view 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 source

"""
    ZeroDimGrid{T} <: Grid{T,0}
# TODO
"""
struct ZeroDimGrid{T} <: Grid{T,0}
    point::T
end

# # Indexing interface
Base.getindex(g::ZeroDimGrid) = g.point
Base.eachindex(g::ZeroDimGrid) = CartesianIndices(())

# # 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) = ()