...
1
15
16 package proto
17
18 import "path/filepath"
19
20
21
22 type Package struct {
23 Name string
24 RuleName string
25 Files map[string]FileInfo
26 Imports map[string]bool
27 Options map[string]string
28 HasServices bool
29 }
30
31 func newPackage(name string) *Package {
32 return &Package{
33 Name: name,
34 Files: map[string]FileInfo{},
35 Imports: map[string]bool{},
36 Options: map[string]string{},
37 }
38 }
39
40 func (p *Package) addFile(info FileInfo) {
41 p.Files[info.Name] = info
42 for _, imp := range info.Imports {
43 p.Imports[imp] = true
44 }
45 for _, opt := range info.Options {
46 p.Options[opt.Key] = opt.Value
47 }
48 p.HasServices = p.HasServices || info.HasServices
49 }
50
51 func (p *Package) addGenFile(dir, name string) {
52 p.Files[name] = FileInfo{
53 Name: name,
54 Path: filepath.Join(dir, filepath.FromSlash(name)),
55 }
56 }
57
View as plain text