This documentation is automatically generated by online-judge-tools/verification-helper
package model
import (
"strings"
)
type FileNode struct {
Path string
DirectoryName string
Files []string
FileNodes []FileNode
}
const (
straight = "│ "
normalBranch = "├──"
lastBranch = "└──"
blank = " "
)
func (fileNode *FileNode) GetTreeStrings() []string {
treeStrings := []string{}
treeStrings = append(treeStrings, fileNode.DirectoryName)
fileNode.addTreeString(&treeStrings, "")
return treeStrings
}
func (fileNode *FileNode) addTreeString(treeStringsPointer *[]string, prefix string) {
fileLength := len(fileNode.Files)
directoryLength := len(fileNode.FileNodes)
existDirectory := directoryLength > 0
for index, file := range fileNode.Files {
*treeStringsPointer = append(*treeStringsPointer, prefix+getFileBranch(index, fileLength, existDirectory)+" "+file)
}
for index, childrenFileNode := range fileNode.FileNodes {
*treeStringsPointer = append(*treeStringsPointer, prefix+getDirectoryBranch(index, directoryLength)+" "+childrenFileNode.DirectoryName)
if strings.HasPrefix(childrenFileNode.DirectoryName, ".") {
continue
}
childrenFileNode.addTreeString(treeStringsPointer, prefix+getAdditionalPrefix(index, directoryLength))
}
}
func getFileBranch(index int, length int, existDirectory bool) string {
if existDirectory {
return normalBranch
}
if index+1 != length {
return normalBranch
}
return lastBranch
}
func getDirectoryBranch(index int, length int) string {
if index+1 != length {
return normalBranch
}
return lastBranch
}
func getAdditionalPrefix(index int, length int) string {
if index+1 != length {
return straight
}
return blank
}
func (fileNode *FileNode) GetPathStrings() []string {
pathStrings := []string{}
fileNode.addPathString(&pathStrings)
return pathStrings
}
func (fileNode *FileNode) addPathString(pathStringsPointer *[]string) {
for _, file := range fileNode.Files {
*pathStringsPointer = append(*pathStringsPointer, fileNode.Path + "/" + file)
}
for _, childrenFileNode := range fileNode.FileNodes {
if strings.HasPrefix(childrenFileNode.DirectoryName, ".") {
continue
}
childrenFileNode.addPathString(pathStringsPointer)
}
}
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
File "/opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/onlinejudge_verify/languages/user_defined.py", line 68, in bundle
raise RuntimeError('bundler is not specified: {}'.format(str(path)))
RuntimeError: bundler is not specified: snippet/model/file_node.go