diff options
Diffstat (limited to 'vendor/golang.org/x/tools/go/packages/loadmode_string.go')
-rw-r--r-- | vendor/golang.org/x/tools/go/packages/loadmode_string.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/vendor/golang.org/x/tools/go/packages/loadmode_string.go new file mode 100644 index 0000000..aff94a3 --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/loadmode_string.go | |||
@@ -0,0 +1,57 @@ | |||
1 | // Copyright 2019 The Go Authors. All rights reserved. | ||
2 | // Use of this source code is governed by a BSD-style | ||
3 | // license that can be found in the LICENSE file. | ||
4 | |||
5 | package packages | ||
6 | |||
7 | import ( | ||
8 | "fmt" | ||
9 | "strings" | ||
10 | ) | ||
11 | |||
12 | var allModes = []LoadMode{ | ||
13 | NeedName, | ||
14 | NeedFiles, | ||
15 | NeedCompiledGoFiles, | ||
16 | NeedImports, | ||
17 | NeedDeps, | ||
18 | NeedExportsFile, | ||
19 | NeedTypes, | ||
20 | NeedSyntax, | ||
21 | NeedTypesInfo, | ||
22 | NeedTypesSizes, | ||
23 | } | ||
24 | |||
25 | var modeStrings = []string{ | ||
26 | "NeedName", | ||
27 | "NeedFiles", | ||
28 | "NeedCompiledGoFiles", | ||
29 | "NeedImports", | ||
30 | "NeedDeps", | ||
31 | "NeedExportsFile", | ||
32 | "NeedTypes", | ||
33 | "NeedSyntax", | ||
34 | "NeedTypesInfo", | ||
35 | "NeedTypesSizes", | ||
36 | } | ||
37 | |||
38 | func (mod LoadMode) String() string { | ||
39 | m := mod | ||
40 | if m == 0 { | ||
41 | return fmt.Sprintf("LoadMode(0)") | ||
42 | } | ||
43 | var out []string | ||
44 | for i, x := range allModes { | ||
45 | if x > m { | ||
46 | break | ||
47 | } | ||
48 | if (m & x) != 0 { | ||
49 | out = append(out, modeStrings[i]) | ||
50 | m = m ^ x | ||
51 | } | ||
52 | } | ||
53 | if m != 0 { | ||
54 | out = append(out, "Unknown") | ||
55 | } | ||
56 | return fmt.Sprintf("LoadMode(%s)", strings.Join(out, "|")) | ||
57 | } | ||