Typically Julians avoid allocation when there’s no real reason to allocate. So unless you need separate Workspace objects for some reason, you’d probably use a mutable struct and just do
w.frontBuffer,w.backBuffer = w.backBuffer,w.frontBuffer
But I’d like to see what others say… I’m not convinced I’m right on that.