ProtoStructs.jl
You are developing a new datastructure and are tired of restarting everytime you change your mind?
ProtoStructs
lets you have structs
which behave like they would have been redifined.
Here is how it works:
using ProtoStructs
@proto @kwdef struct DevType
a::Int = 1
b::Float64 = 2.0
c
end
a = DevType(a=1, b=2.0, c="3")
b = DevType(c=:boo)
c = DevType(2, 4.0, nothing)
Redefine at will, but remove the @proto
macro after developing to ensure correctness and improve performance of your code.
For julia VERSION < v"1.8"
there is also Redef.