Yes, Accessors.jl
is actually the successor of SetField.jl
(but the latter is still maintained).
(I’m not a very proficient user of SetField
/ Accessors
, so take the following with a grain of salt)
Accessors.jl
also provides the nice syntax @set s.x = 1
, but I don’t think it works when s
is replaced by something like a[i]
.
In other words, I think @set a[i].s = 1
is interpreted as : “give me a copy of a
in which the x
field of the i
-th element is set to 1”. As opposed to “give me a copy of a[i]
in which the x
field is set to 1” (which would be the desired semantics here).