Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / go / packages / loadmode_string.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201028153306-37f0764111ff/go/packages/loadmode_string.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201028153306-37f0764111ff/go/packages/loadmode_string.go
new file mode 100644 (file)
index 0000000..7ea37e7
--- /dev/null
@@ -0,0 +1,57 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package packages
+
+import (
+       "fmt"
+       "strings"
+)
+
+var allModes = []LoadMode{
+       NeedName,
+       NeedFiles,
+       NeedCompiledGoFiles,
+       NeedImports,
+       NeedDeps,
+       NeedExportsFile,
+       NeedTypes,
+       NeedSyntax,
+       NeedTypesInfo,
+       NeedTypesSizes,
+}
+
+var modeStrings = []string{
+       "NeedName",
+       "NeedFiles",
+       "NeedCompiledGoFiles",
+       "NeedImports",
+       "NeedDeps",
+       "NeedExportsFile",
+       "NeedTypes",
+       "NeedSyntax",
+       "NeedTypesInfo",
+       "NeedTypesSizes",
+}
+
+func (mod LoadMode) String() string {
+       m := mod
+       if m == 0 {
+               return "LoadMode(0)"
+       }
+       var out []string
+       for i, x := range allModes {
+               if x > m {
+                       break
+               }
+               if (m & x) != 0 {
+                       out = append(out, modeStrings[i])
+                       m = m ^ x
+               }
+       }
+       if m != 0 {
+               out = append(out, "Unknown")
+       }
+       return fmt.Sprintf("LoadMode(%s)", strings.Join(out, "|"))
+}