Skip to content

Latest commit

 

History

History
41 lines (26 loc) · 2.13 KB

CHANGELOG.md

File metadata and controls

41 lines (26 loc) · 2.13 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Release notes for v0.4.3 and earlier are published on GitHub Releases.

v0.6.0 - 2026-10-08

Changed

  • Struct, Valid and ValidateAs validate the struct elements of slice, array and map fields against the element type's own tags, without dive, the way nested struct fields already were. Failures are reported as field[i].sub or field[key].sub; a nil pointer element validates as the zero value; cross-field rules inside an element resolve among the element's fields. Inputs whose elements were silently accepted before now fail.
  • Check, CheckType, Struct and Valid report invalid tags on collection element types, named field[].sub.

v0.5.0 - 2026-09-02

Changed

  • Values maps a key that appears more than once to a []string, so repeated form parameters validate with dive and bind into slice fields.
  • The sentinel errors and the RuleError, RulesError and BindError types are consolidated in errors.go; names and package are unchanged, so importers need no source change.
  • The expression and plan caches insert in O(1) and are cleared at 10000 entries instead of copying the whole table on every insert.
  • regex and not_regex compile their pattern once per expression.
  • is.TimeZone caches lookups.

Fixed

  • Map with a string-keyed map such as map[string]string no longer renders, sorts and boxes every entry.
  • Building rule text per request no longer costs a copy of every cached expression.

Other (dependencies, CI, tools...)

  • Input sources are unified behind an internal source interface.
  • data.go renamed to bind.go.
  • runtime_error.go merged into errors.go.