github.com/devstream-io/devstream@v0.13.3/internal/pkg/scaffold/tree/tree.go (about) 1 package tree 2 3 import "fmt" 4 5 type TreeNode struct { 6 Name string 7 IsDir bool 8 Children []*TreeNode 9 } 10 11 func NewTreeNode(name string, isDir bool) *TreeNode { 12 return &TreeNode{ 13 Name: name, 14 IsDir: isDir, 15 Children: []*TreeNode{}, 16 } 17 } 18 19 func (t *TreeNode) AddChild(child *TreeNode) { 20 t.Children = append(t.Children, child) 21 } 22 23 func (t *TreeNode) PrintTree(prefix string) { 24 if t.IsDir { 25 fmt.Println(prefix + t.Name + "/") 26 } else { 27 fmt.Println(prefix + t.Name) 28 } 29 for _, child := range t.Children { 30 child.PrintTree(prefix + " ") 31 } 32 }