aboutsummaryrefslogtreecommitdiff
path: root/model/lookup.go
diff options
context:
space:
mode:
author2026-03-09 23:05:42 +0300
committer2026-03-09 23:05:42 +0300
commit00394a80501960ad26787b5c44435ed5ed67ad84 (patch)
tree672eb918c552c858f32e9533dc3799af6b75769f /model/lookup.go
parent'-' sign in words accepted (diff)
downloadconf-00394a80501960ad26787b5c44435ed5ed67ad84.tar.gz
conf-00394a80501960ad26787b5c44435ed5ed67ad84.tar.bz2
conf-00394a80501960ad26787b5c44435ed5ed67ad84.tar.xz
conf-00394a80501960ad26787b5c44435ed5ed67ad84.zip
Полностью переписал библиотеку. Перевёл с EBNF на PEG.v0.1.0
Diffstat (limited to '')
-rw-r--r--model/lookup.go56
1 files changed, 0 insertions, 56 deletions
diff --git a/model/lookup.go b/model/lookup.go
deleted file mode 100644
index 880a1f8..0000000
--- a/model/lookup.go
+++ /dev/null
@@ -1,56 +0,0 @@
-package model
-
-import (
- "os"
- "strings"
-)
-
-// WordLookup тип определяющий функцию поиска замены слов при
-// стрингификации Values.
-type WordLookup func(word Word) string
-
-// chainLookup утилитарная функция для последовательных применений функций
-// поиска до первого нахождения подстановки. Если returnOrigin == true,
-// то в случае неудачи вернёт имя слова.
-func chainLookup(lookups ...WordLookup) WordLookup {
- return func(word Word) string {
- for _, lookup := range lookups {
- if v := lookup(word); v != "" {
- return v
- }
- }
- return ""
- }
-}
-
-// LookupEnv функция типа WordLookup которая пытается подставить вместо word
-// соответствующую ему переменную окружения ОС. При этом он срабатывает только
-// если слово начинается со знака `$`.
-func LookupEnv(word Word) string {
- if !strings.HasPrefix(string(word), "$") {
- return ""
- }
- varName := strings.TrimPrefix(string(word), "$")
- if result, ok := os.LookupEnv(varName); ok {
- return result
- }
- return ""
-}
-
-// LookupSubst функция типа WordLookup которая пытается подставить вместо word
-// значение из словаря подстановок по соответствующему ключу.
-func LookupSubst(subst map[Word]string) WordLookup {
- return func(word Word) string {
- if result, ok := subst[word]; ok {
- return result
- }
- return ""
- }
-}
-
-// Origin возвращает просто строковое представления слова. Если поставить в
-// конце цепочки - то вместо пустоты (если предыдущие фильтры не сработали)
-// вернётся оригинальное имя слова.
-func Origin(word Word) string {
- return string(word)
-}