# FieldProperties.jl

**URL:** <https://discourse.julialang.org/t/fieldproperties-jl/34356>\
**Category:** Package Announcements\
**Created:** [February 8, 2020, 8:51pm UTC](https://discourse.julialang.org/t/fieldproperties-jl/34356 "2020-02-08T20:51:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zach\_Christensen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zach_christensen/32/7220_2.png) [@Zach\_Christensen](https://discourse.julialang.org/u/Zach_Christensen)\
**Post date:** [February 8, 2020, 8:51pm UTC](https://discourse.julialang.org/t/fieldproperties-jl/34356/1 "2020-02-08T20:51:49Z")

</div>

[FieldProperties.jl](https://github.com/Tokazama/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.
