Does this cover your use case?
julia> using StructArrays
julia> mutable struct S
x
y
end
julia> s = StructArray([ S( randn( 2 )...) for j ∈ 1:3 ])
3-element StructArray(::Vector{Any}, ::Vector{Any}) with eltype S:
S(-2.2813758448781507, 1.0576333529094646)
S(0.8757842483382511, -0.9115113215165129)
S(0.529173572687709, 0.6783507892731278)
julia> s2 = StructArray([ S( randn( 2 )...) for j ∈ 1:3 ])
3-element StructArray(::Vector{Any}, ::Vector{Any}) with eltype S:
S(-0.44020090132169276, 0.6585031850841647)
S(-0.35800735773957343, 0.41594747368930296)
S(-0.7756397613064178, -0.9177624933053972)
julia> s.x
3-element Vector{Any}:
-2.2813758448781507
0.8757842483382511
0.529173572687709
julia> s.x .= s2.y .+ 1
3-element Vector{Any}:
1.6585031850841647
1.415947473689303
0.08223750669460284
julia> s
3-element StructArray(::Vector{Any}, ::Vector{Any}) with eltype S:
S(1.6585031850841647, 1.0576333529094646)
S(1.415947473689303, -0.9115113215165129)
S(0.08223750669460284, 0.6783507892731278)