Abstract seq[T] printing
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import std/[
|
||||
sequtils,
|
||||
options,
|
||||
sequtils,
|
||||
strformat,
|
||||
strutils,
|
||||
@@ -20,3 +20,25 @@ func stringifyFields*(
|
||||
.filter(x => x.print)
|
||||
.map(x => x.field & ": " & $x.value)
|
||||
.join(",\n")
|
||||
|
||||
func stringifyBlock*(blockName: string, indent = 0, xs: varargs[string]): string =
|
||||
let fieldIndent = indent + INDENT_SIZE
|
||||
|
||||
concat(
|
||||
@[&"{blockName}("],
|
||||
@xs.mapIt(it.indent(fieldIndent)),
|
||||
@[")"],
|
||||
)
|
||||
.join("\n")
|
||||
|
||||
func stringifySeq*[T](xs: seq[T], stringifyFn: (T) -> string, indent = 0): string =
|
||||
let fieldIndent = indent + INDENT_SIZE
|
||||
@[
|
||||
"@[",
|
||||
xs
|
||||
.mapIt(it.stringifyFn())
|
||||
.join(",\n")
|
||||
.indent(fieldIndent),
|
||||
"]",
|
||||
]
|
||||
.join("\n")
|
||||
|
||||
Reference in New Issue
Block a user