Add the ability to select type of output.
This commit is contained in:
parent
a7c5845b7a
commit
515034a64e
@ -30,4 +30,6 @@ type Controller struct {
|
|||||||
Split int
|
Split int
|
||||||
// Which part of the search should the solver focus on.
|
// Which part of the search should the solver focus on.
|
||||||
Part int
|
Part int
|
||||||
|
// Type of output requested
|
||||||
|
Output string
|
||||||
}
|
}
|
||||||
|
14
export/flat.go
Normal file
14
export/flat.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package export
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Print solutions into a human friendly format for in the console.
|
||||||
|
func (export *Export) PrintFlatSolutions() {
|
||||||
|
for solutionIndex, solution := range export.Controller.Solutions {
|
||||||
|
log.Printf("\nSolution #%d:", solutionIndex+1)
|
||||||
|
fmt.Println(solution)
|
||||||
|
}
|
||||||
|
}
|
@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Print solutions into a human friendly format for in the console.
|
// Print solutions into a human friendly format for in the console.
|
||||||
func (export *Export) PrintSolutions() {
|
func (export *Export) PrintHumanSolutions() {
|
||||||
for solutionIndex, solution := range export.Controller.Solutions {
|
for solutionIndex, solution := range export.Controller.Solutions {
|
||||||
log.Printf("\nSolution #%d:", solutionIndex+1)
|
log.Printf("\nSolution #%d:", solutionIndex+1)
|
||||||
//fmt.Println(solution)
|
//fmt.Println(solution)
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Parse command-line parameters, test input, store them in the Controller.
|
// Parse command-line parameters, test input, store them in the Controller.
|
||||||
@ -24,6 +25,7 @@ func (flags *Flags) ParseFlags() {
|
|||||||
flag.IntVar(&flags.Controller.NumCPUs, "numcpu", runtime.NumCPU(), "Number of CPU cores to assign to this task.")
|
flag.IntVar(&flags.Controller.NumCPUs, "numcpu", runtime.NumCPU(), "Number of CPU cores to assign to this task.")
|
||||||
flag.IntVar(&flags.Controller.Split, "split", 1, "Split the tasks in n parts. This depends on the availability of the first row.")
|
flag.IntVar(&flags.Controller.Split, "split", 1, "Split the tasks in n parts. This depends on the availability of the first row.")
|
||||||
flag.IntVar(&flags.Controller.Part, "part", 1, "Process part x in n parts. Cannot be lower than 1, or higher than specified in split.")
|
flag.IntVar(&flags.Controller.Part, "part", 1, "Process part x in n parts. Cannot be lower than 1, or higher than specified in split.")
|
||||||
|
flag.StringVar(&flags.Controller.Output, "output", "human", "Type of output. 'human' for human readable. 'flat' for flat as stored in memory output.")
|
||||||
|
|
||||||
// Parse the flags
|
// Parse the flags
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
@ -72,6 +74,14 @@ func (flags *Flags) ParseFlags() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Process output selection
|
||||||
|
flags.Controller.Output = strings.ToLower(flags.Controller.Output)
|
||||||
|
if flags.Controller.Output != "human" && flags.Controller.Output != "flat" {
|
||||||
|
log.Printf("ERROR: Invalid output, can only be 'human' or 'flat'.\n")
|
||||||
|
flags.printUsage()
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate if a row is properly set.
|
// Validate if a row is properly set.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user