Initial commit
This commit is contained in:
commit
8c5ba869dc
77
main.go
Normal file
77
main.go
Normal file
@ -0,0 +1,77 @@
|
||||
package cp437tree
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
)
|
||||
|
||||
const (
|
||||
VerticalRight = "├"
|
||||
DownLeft = "┐"
|
||||
UpRight = "└"
|
||||
DownRight = "┌"
|
||||
Horizontal ="─"
|
||||
Vertical = "│"
|
||||
)
|
||||
|
||||
/*
|
||||
┌┐ // HeaderTop
|
||||
├┐ // HeaderMid
|
||||
│├ // ItemMid
|
||||
│└ // ItemBottom
|
||||
└┐ // HeaderBottom
|
||||
└── //ItemEndBottom
|
||||
*/
|
||||
|
||||
type Node struct {
|
||||
Text string
|
||||
Children *[]Node
|
||||
}
|
||||
|
||||
|
||||
func (o *Request) ToTreeGroup(w io.Writer, position rune) {
|
||||
middle := "├──┐" // default middle branch
|
||||
midRow := "│ ├── "
|
||||
botRow := "│ └── "
|
||||
topBranch := "┌──┐"
|
||||
endBranch := "└──┐"
|
||||
veryBottomRow := " └── "
|
||||
|
||||
rowChars := ""
|
||||
if position == 't' {
|
||||
branch = topBranch
|
||||
}
|
||||
if position == 'b' {
|
||||
branch = endBranch
|
||||
}
|
||||
|
||||
// platform name header
|
||||
rowChars = midRow
|
||||
// preparing the children variable so this whole thing can be extracted later.
|
||||
children := o.Versions
|
||||
childCount := len(children) - 1
|
||||
for idx, v := range children {
|
||||
if idx == childCount {
|
||||
rowChars = botRow
|
||||
if position == 'b' {
|
||||
rowChars = veryBottomRow
|
||||
}
|
||||
}
|
||||
_, _ = fmt.Fprintf(w, "\n%s%s", rowChars, v)
|
||||
}
|
||||
|
||||
// new line to end the row
|
||||
_, _ = fmt.Fprintf(w, "\n")
|
||||
}
|
||||
|
||||
func idToPosition(id, count int) rune {
|
||||
// Returns 't' for top, 'b' for bottom, and 'm', for middle by comparing the idx to the count of rows.
|
||||
// Does not account for if count = 1
|
||||
if id == 0 {
|
||||
return 't'
|
||||
}
|
||||
if id == count-1 {
|
||||
return 'b'
|
||||
}
|
||||
return 'm'
|
||||
}
|
Loading…
Reference in New Issue
Block a user