mutable struct PreVector{T} last_ind::UInt64 v::Vector{T} PreVector(T, N) = new{T}(UInt64(0), Vector{T}(undef, N)) 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