1
0
Fork 0
mirror of https://gitlab.rlp.net/mobitar/ReCo.jl.git synced 2024-09-19 19:01:17 +00:00
ReCo.jl/src/PreVector.jl
2021-12-10 03:16:18 +01:00

29 lines
567 B
Julia

import Base: push!, iterate
mutable struct PreVector{T}
last_ind::UInt64
v::Vector{T}
PreVector{T}(n_particles) where {T} = new{T}(UInt64(0), Vector{T}(undef, n_particles))
end
function push!(pv::PreVector{T}, x::T) where {T}
pv.last_ind += 1
pv.v[pv.last_ind] = x
return nothing
end
function reset!(pv::PreVector{T}) where {T}
pv.last_ind = 0
return nothing
end
function iterate(pv::PreVector{T}, state=1) where {T}
if state > pv.last_ind
return nothing
else
return (pv.v[state], state + 1)
end
end