Fix types for builder seq

This commit is contained in:
Florian Schroedl
2022-01-20 17:00:00 +01:00
parent 86a3c009b8
commit e99c7352b6

View File

@@ -36,7 +36,7 @@ let linkParser* = proc(parser: Parser): ParserResult {.closure.} =
else:
linkValue
func linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
proc linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
case (linkUrl, linkDescription):
of (@linkUrl, Some(@linkDescription)):
return &"[[{linkUrl}][{linkDescription}]]"
@@ -46,19 +46,21 @@ func linkStringifier*(linkUrl: string, linkDescription: Maybe[string]): string =
func linkTokenizer*(parserTokens: seq[ParserToken]): OrgBuilderT =
[@linkUrl, @linkDescription] := parserTokens.map(tokenStringValue)
let maybeLinkDescription = linkDescription.just().notEmpty()
OrgBuilderT(
return OrgBuilderT(
kind: orgLink,
content: linkStringifier(linkUrl, maybeLinkDescription),
linkUrl: linkUrl,
linkDescription: maybeLinkDescription,
)
let linkTokenizerSeq* = proc(parserTokens: seq[ParserToken]): seq[OrgBuilderT] {.closure.} =
return @[linkTokenizer(parserTokens)]
when isMainModule:
# echo initParser("[[https://florianschroedl.com]]").linkParser()
echo initParser("[[https://florianschroedl.com][My blog]]")
.linkParser()
.foldTokens(
onError = (x) => nothing(OrgBuilderT),
onSuccess = xs => just(linkTokenizer(xs)),
onError = (x) => newSeq[OrgBuilderT](),
onSuccess = proc(xs: seq[ParserToken]): seq[OrgBuilderT] = linkTokenizerSeq(xs),
)