go-tagexpr
An interesting go struct tag expression syntax for field validation
...Support access to any field in the current structure. Support access to nested fields, non-exported fields, etc. Support registers function expression. Built-in len, sprintf, regexp functions. Support single mode and multiple mode to define the expression. Parameter check subpackage. Use offset pointers to directly take values, better performance. Required go version ≥1.9.