summaryrefslogtreecommitdiff
path: root/print_digit_map.go
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2023-08-30 17:54:17 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2023-08-30 20:02:26 -0500
commitaa73f47a5e2535224aa772f163aed2b6802bd4ad (patch)
treee516fc505540eaa27abeb78214984d582c58c29c /print_digit_map.go
parent0f698d42907bc06f469ae3311433bcc741b8bd9b (diff)
Add compact display
Diffstat (limited to 'print_digit_map.go')
-rw-r--r--print_digit_map.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/print_digit_map.go b/print_digit_map.go
index 4def177..b878a51 100644
--- a/print_digit_map.go
+++ b/print_digit_map.go
@@ -8,6 +8,9 @@ import (
"strings"
)
+// The maximum radix that is supported by writeDigitMapSmall
+const maxSmallRadix = 36
+
func writeDigitMap(w io.Writer, digitMap []factors.DigitType) {
if len(digitMap) < 2 {
panic("Radices cannot be less than 2!")
@@ -36,6 +39,19 @@ func writeDigitMapSmall(w io.Writer, digitMap []factors.DigitType) {
fmt.Fprintln(w, typesString.String())
}
+// Prints a compactified digit map, used in the compact display.
+func writeDigitMapCompact(w io.Writer, digitMap []factors.DigitType) {
+ radix := uint(len(digitMap))
+ if radix <= maxSmallRadix {
+ fmt.Fprint(w, "Digits: ")
+ for digit, digitType := range digitMap {
+ fmt.Fprint(w, colourString(strings.ToUpper(
+ strconv.FormatUint(uint64(digit), int(radix))), digitType))
+ }
+ fmt.Fprintln(w)
+ }
+}
+
func colourString(s string, digitType factors.DigitType) string {
var colourBegin string
switch digitType.TotativeType() {