Setfield.jl icon indicating copy to clipboard operation
Setfield.jl copied to clipboard

Update deeply nested immutable structs.

Setfield

DocStable DocDev CI

Update deeply nested immutable structs.

Lifecycle

We plan to maintain Setfield.jl for a long time (written 2020-09-21, reinforced 2021-08-01). We will however not add new features. For a successor, see Accessors.jl.

Usage

Updating deeply nested immutable structs was never easier:

using Setfield
@set obj.a.b.c = d

For more information, see the documentation and/or watch this video:

JuliaCon2020 Changing the immutable

Some creative usages of Setfield

  • VegaLite.jl overloads getproperty and lens API to manipulate JSON-based nested objects.

  • Kaleido.jl is a library of additional lenses.

  • PhaseSpaceIO.jl overloads getproperty and setproperties to get/set values from/in packed bits.