From 7d622695ae19e518fded6aa5fbf001dae4652211 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 14 Mar 2026 10:13:55 -0400 Subject: back: add qver package to track qid versions --- back/qver/options.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 back/qver/options.go (limited to 'back/qver/options.go') diff --git a/back/qver/options.go b/back/qver/options.go new file mode 100644 index 0000000..41385ce --- /dev/null +++ b/back/qver/options.go @@ -0,0 +1,32 @@ +package qver + +type Option func(*options) + +type options struct { + parent *Version + UpdateFunc + state interface{} +} + +func parse(opts ...Option) options { + var o options + for _, opt := range opts { + opt(&o) + } + return o +} + +// Whenever the version changes, bump the parent's version as well. +func Parent(p *Version) Option { + return func(o *options) { + o.parent = p + } +} + +// Call f(state) to update the version whenever Version.Get() is called. +func Update(state interface{}, f UpdateFunc) Option { + return func(o *options) { + o.UpdateFunc = f + o.state = state + } +} -- cgit v1.2.3