FieldProperties.jl helps in documenting, creating, and assigning properties. This package was developed because I had a need to create a consistent but generic interface for many different types. Documentation goes over how it compares to other packages, what it does, and a couple examples on how to use it in detail.

Here’s the big picture:

  • What it helps with
    • Defining generic methods
    • Documenting methods
    • Flexibly enforcing type stability for methods
  • Useful methods it provides
    • @defprop : for defining a property
    • @properties : overloads the getproperty, setproperty!, and propertynames methods for a specific type

This package was my first serious venture into macros and documentation. That and continually rewriting things as I experimented with it made it take a while until I felt it would be generally helpful to others. If you’re curious about future directions for the package (or want to provide some input) take a look at the issues for the repo.

Comments, feedback, and questions are welcome.