From 68c720fefd1ae8c9cd1ea6755453b8281c093dc9 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Tue, 16 Apr 2019 18:22:18 +0200 Subject: ui: move orderedStringSet to util.go Signed-off-by: Alexander Neumann --- ui/tunnelconfigdialog.go | 80 ------------------------------------------------ ui/util.go | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/ui/tunnelconfigdialog.go b/ui/tunnelconfigdialog.go index 0a7432ac..e937455d 100644 --- a/ui/tunnelconfigdialog.go +++ b/ui/tunnelconfigdialog.go @@ -321,83 +321,3 @@ func (dlg *TunnelConfigDialog) onSaveButtonClicked() { dlg.Accept() } - -type orderedStringSet struct { - items []string - item2index map[string]int -} - -func orderedStringSetFromSlice(items []string) *orderedStringSet { - oss := newOrderedStringSet() - oss.AddMany(items) - return oss -} - -func newOrderedStringSet() *orderedStringSet { - return &orderedStringSet{item2index: make(map[string]int)} -} - -func (oss *orderedStringSet) Add(item string) bool { - if _, ok := oss.item2index[item]; ok { - return false - } - - oss.item2index[item] = len(oss.items) - oss.items = append(oss.items, item) - return true -} - -func (oss *orderedStringSet) AddMany(items []string) { - for _, item := range items { - oss.Add(item) - } -} - -func (oss *orderedStringSet) UniteWith(other *orderedStringSet) { - if other == oss { - return - } - - oss.AddMany(other.items) -} - -func (oss *orderedStringSet) Remove(item string) bool { - if i, ok := oss.item2index[item]; ok { - oss.items = append(oss.items[:i], oss.items[i+1:]...) - delete(oss.item2index, item) - return true - } - - return false -} - -func (oss *orderedStringSet) Len() int { - return len(oss.items) -} - -func (oss *orderedStringSet) ToSlice() []string { - return append(([]string)(nil), oss.items...) -} - -func (oss *orderedStringSet) Contains(item string) bool { - _, ok := oss.item2index[item] - return ok -} - -func (oss *orderedStringSet) IsSupersetOf(other *orderedStringSet) bool { - if oss.Len() < other.Len() { - return false - } - - for _, item := range other.items { - if !oss.Contains(item) { - return false - } - } - - return true -} - -func (oss *orderedStringSet) String() string { - return fmt.Sprintf("%v", oss.items) -} diff --git a/ui/util.go b/ui/util.go index b17f106c..0cca0909 100644 --- a/ui/util.go +++ b/ui/util.go @@ -12,6 +12,86 @@ import ( "github.com/lxn/walk" ) +type orderedStringSet struct { + items []string + item2index map[string]int +} + +func orderedStringSetFromSlice(items []string) *orderedStringSet { + oss := newOrderedStringSet() + oss.AddMany(items) + return oss +} + +func newOrderedStringSet() *orderedStringSet { + return &orderedStringSet{item2index: make(map[string]int)} +} + +func (oss *orderedStringSet) Add(item string) bool { + if _, ok := oss.item2index[item]; ok { + return false + } + + oss.item2index[item] = len(oss.items) + oss.items = append(oss.items, item) + return true +} + +func (oss *orderedStringSet) AddMany(items []string) { + for _, item := range items { + oss.Add(item) + } +} + +func (oss *orderedStringSet) UniteWith(other *orderedStringSet) { + if other == oss { + return + } + + oss.AddMany(other.items) +} + +func (oss *orderedStringSet) Remove(item string) bool { + if i, ok := oss.item2index[item]; ok { + oss.items = append(oss.items[:i], oss.items[i+1:]...) + delete(oss.item2index, item) + return true + } + + return false +} + +func (oss *orderedStringSet) Len() int { + return len(oss.items) +} + +func (oss *orderedStringSet) ToSlice() []string { + return append(([]string)(nil), oss.items...) +} + +func (oss *orderedStringSet) Contains(item string) bool { + _, ok := oss.item2index[item] + return ok +} + +func (oss *orderedStringSet) IsSupersetOf(other *orderedStringSet) bool { + if oss.Len() < other.Len() { + return false + } + + for _, item := range other.items { + if !oss.Contains(item) { + return false + } + } + + return true +} + +func (oss *orderedStringSet) String() string { + return fmt.Sprintf("%v", oss.items) +} + func writeFileWithOverwriteHandling(owner walk.Form, filePath string, write func(file *os.File) error) bool { showError := func(err error) bool { if err == nil { -- cgit v1.2.3-59-g8ed1b