diff options
author | Alexander Neumann <alexander.neumann@picos-software.com> | 2019-04-16 18:22:18 +0200 |
---|---|---|
committer | Alexander Neumann <alexander.neumann@picos-software.com> | 2019-04-23 11:05:00 +0200 |
commit | 82eaa79554c428e83b472e2718f7cba553f1b1f3 (patch) | |
tree | a9d9698bb0d2d4b42fa3c7dea1dff4b422a3a614 /ui | |
parent | ui: implement log dialog; some refactoring in manage tunnels window to share some bits (diff) | |
download | wireguard-windows-82eaa79554c428e83b472e2718f7cba553f1b1f3.tar.xz wireguard-windows-82eaa79554c428e83b472e2718f7cba553f1b1f3.zip |
ui: move orderedStringSet to util.go
Signed-off-by: Alexander Neumann <alexander.neumann@picos-software.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | ui/tunnelconfigdialog.go | 80 | ||||
-rw-r--r-- | 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) -} @@ -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 { |