From e78b7b85e4792f413175e13ef2fe437839b017a2 Mon Sep 17 00:00:00 2001 From: Reto Brunner Date: Fri, 24 Jan 2020 18:18:49 +0100 Subject: config: Strongly type context type The go compiler can't help much with untyped int constants. Even though the only valid constants are 0-3 it will happily accept 4 as input. Let's let the go compiler worry about correctness here. This also allows people not very familiar with the code to use it properly via auto completion. --- config/config.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'config') diff --git a/config/config.go b/config/config.go index 0b46014..0393e46 100644 --- a/config/config.go +++ b/config/config.go @@ -46,14 +46,16 @@ type UIConfig struct { CompletionPopovers bool `ini:"completion-popovers"` } +type ContextType int + const ( - UI_CONTEXT_FOLDER = iota + UI_CONTEXT_FOLDER ContextType = iota UI_CONTEXT_ACCOUNT UI_CONTEXT_SUBJECT ) type UIConfigContext struct { - ContextType int + ContextType ContextType Regex *regexp.Regexp UiConfig UIConfig } @@ -602,7 +604,8 @@ func parseLayout(layout string) [][]string { return l } -func (config *AercConfig) mergeContextualUi(baseUi *UIConfig, contextType int, s string) { +func (config *AercConfig) mergeContextualUi(baseUi *UIConfig, + contextType ContextType, s string) { for _, contextualUi := range config.ContextualUis { if contextualUi.ContextType != contextType { continue @@ -617,7 +620,7 @@ func (config *AercConfig) mergeContextualUi(baseUi *UIConfig, contextType int, s } } -func (config *AercConfig) GetUiConfig(params map[int]string) UIConfig { +func (config *AercConfig) GetUiConfig(params map[ContextType]string) UIConfig { baseUi := config.Ui for k, v := range params { -- cgit v1.2.3