-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
package.go
26 lines (22 loc) · 778 Bytes
/
package.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package gadget
import (
"github.com/wilhelm-murdoch/go-collection"
)
// Package represents a golang package as well as all associated files,
// functions and other declarations.
type Package struct {
Name string `json:"name"` // The name of the current package.
Files *collection.Collection[*File] `json:"files"` // A collection of golang files associated with this package.
}
// NewPackage returns a Package instance with an initialised collection used for
// assigning and iterating through files.
func NewPackage(name string) *Package {
return &Package{
Name: name,
Files: collection.New[*File](),
}
}
// String implements the Stringer struct and returns the current package's name.
func (p *Package) String() string {
return p.Name
}