mutable struct Workspace
frontBuffer::Vector{Int64}
backBuffer::Vector{Int64}
end
function Workspace(s::Int64)
return Workspace(zeros(Int64, s), zeros(Int64, s))
end
function swapbuffers!(w::Workspace)
w.backBuffer, w.frontBuffer = w.frontBuffer, w.backBuffer
return w
end
Now:
julia> w = Workspace(5)
Workspace([0, 0, 0, 0, 0], [0, 0, 0, 0, 0])
julia> w.frontBuffer[1] = 1
1
julia> w
Workspace([1, 0, 0, 0, 0], [0, 0, 0, 0, 0])
julia> r = swapbuffers!(w)
Workspace([0, 0, 0, 0, 0], [1, 0, 0, 0, 0])
julia> w
Workspace([0, 0, 0, 0, 0], [1, 0, 0, 0, 0])