ProtoStructs.jl

Run tests Codecov

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.