diff options
author | xengineering <me@xengineering.eu> | 2024-10-08 17:04:30 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2024-10-08 17:04:30 +0200 |
commit | 2e326d354a536ec8626809c9fe9b411d05e79c46 (patch) | |
tree | 0f4415c6786635c8eee141e411520555ec0d0752 /main.go | |
parent | b03cf32bef7e34c4886a3b7300ffc0132b310a5b (diff) | |
download | soundbox-app-2e326d354a536ec8626809c9fe9b411d05e79c46.tar soundbox-app-2e326d354a536ec8626809c9fe9b411d05e79c46.tar.zst soundbox-app-2e326d354a536ec8626809c9fe9b411d05e79c46.zip |
Use only one Config struct
This commit switches from a GlobalConfig struct with named sub-structs
to a single struct definition with anonymous sub-structs. The advantage
is that there are not so many names the reader has to understand.
A custom UnmarshalJSON() function on the Config struct level ensures
that the error checking can be embedded into the parsing process and
native Go types like net.HardwareAddr can be used in the struct
definition while the string-based struct for JSON unmarshaling is an
implementation detail of the custom UnmarshalJSON() function.
In general the user of this type and its method only has to parse the
config with json.Unmarshal(), handle error at this step and can rely on
validated configuration data with native Go types from that point on.
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -38,7 +38,7 @@ func main() { type State struct { sync.Mutex - Config GlobalConfig + Config Config Theme *material.Theme Title string UrlEditor widget.Editor @@ -53,7 +53,7 @@ type Ui struct { State State } -func NewUi(config GlobalConfig) *Ui { +func NewUi(config Config) *Ui { ui := Ui{} ui.State.Config = config |