From a3daeba8847e634fdf07f5865156f11f786ef5ad Mon Sep 17 00:00:00 2001 From: JP Appel Date: Mon, 5 May 2025 14:58:20 -0400 Subject: Remembered switch statements exist --- pkg/query/outputs.go | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) (limited to 'pkg') diff --git a/pkg/query/outputs.go b/pkg/query/outputs.go index f258452..3938f4f 100644 --- a/pkg/query/outputs.go +++ b/pkg/query/outputs.go @@ -121,27 +121,27 @@ func parseOutputFormat(formatStr string) ([]OutputToken, []string, error) { curTok = append(curTok, c) if curTok[0] == '%' && len(curTok) == 2 { - s := string(curTok) - if s == "%%" { + switch string(curTok) { + case "%%": strToks = append(strToks, "%") toks = append(toks, OUT_TOK_STR) - } else if s == "%p" { + case "%p": toks = append(toks, OUT_TOK_PATH) - } else if s == "%T" { + case "%T": toks = append(toks, OUT_TOK_TITLE) - } else if s == "%d" { + case "%d": toks = append(toks, OUT_TOK_DATE) - } else if s == "%f" { + case "%f": toks = append(toks, OUT_TOK_FILETIME) - } else if s == "%a" { + case "%a": toks = append(toks, OUT_TOK_AUTHORS) - } else if s == "%t" { + case "%t": toks = append(toks, OUT_TOK_TAGS) - } else if s == "%l" { + case "%l": toks = append(toks, OUT_TOK_LINKS) - } else if s == "%m" { + case "%m": toks = append(toks, OUT_TOK_META) - } else { + default: return nil, nil, ErrUnrecognizedOutputToken } curTok = curTok[:0] @@ -198,29 +198,30 @@ func (o CustomOutput) Output(docs []*index.Document) (string, error) { func (o CustomOutput) writeDoc(b *strings.Builder, doc *index.Document) error { curStrTok := 0 for _, token := range o.tokens { - if token == OUT_TOK_STR { + switch token { + case OUT_TOK_STR: if curStrTok >= len(o.stringTokens) { return ErrExpectedMoreStringTokens } b.WriteString(o.stringTokens[curStrTok]) curStrTok++ - } else if token == OUT_TOK_PATH { + case OUT_TOK_PATH: b.WriteString(doc.Path) - } else if token == OUT_TOK_TITLE { + case OUT_TOK_TITLE: b.WriteString(doc.Title) - } else if token == OUT_TOK_DATE { + case OUT_TOK_DATE: b.WriteString(doc.Date.Format(o.datetimeFormat)) - } else if token == OUT_TOK_FILETIME { + case OUT_TOK_FILETIME: b.WriteString(doc.FileTime.Format(o.datetimeFormat)) - } else if token == OUT_TOK_AUTHORS { + case OUT_TOK_AUTHORS: b.WriteString(strings.Join(doc.Authors, ", ")) - } else if token == OUT_TOK_TAGS { + case OUT_TOK_TAGS: b.WriteString(strings.Join(doc.Tags, ", ")) - } else if token == OUT_TOK_LINKS { + case OUT_TOK_LINKS: b.WriteString(strings.Join(doc.Links, ", ")) - } else if token == OUT_TOK_META { + case OUT_TOK_META: b.WriteString(doc.OtherMeta) - } else { + default: return ErrUnrecognizedOutputToken } } -- cgit v1.2.3