API-функции Ziva
Помимо задач и очередей Ziva предоставляет набор глобальных функций. Они помогают настроить язык интерфейса, выбрать цветовую схему, оптимизировать работу на встроенных устройствах и управлять строковыми операциями.Все функции находятся в пакете
ziva
. Достаточно подключить библиотеку: import "github.com/qzeleza/ziva"
.Локализация
SetLanguage(lang string) string
Устанавливает активный язык интерфейса ("ru"
, "en"
, "tr"
, …). Возвращает фактически применённый язык (если запрошенный недоступен, вернётся значение по умолчанию).
SetDefaultLanguage(lang string) string
Задаёт язык, который будет использоваться до первого вызоваSetLanguage
.
CurrentLanguage() string
Возвращает код текущей локали.SupportedLanguages() []string
Список поддерживаемых языков. Можно использовать для выпадающего списка настроек.Автоконфигурация и окружение
AutoConfigure()
Анализирует систему и включает оптимизации (лимиты памяти, упрощённые режимы отображения) — полезно на встроенных устройствах.Is64Bit() bool
Проверяет архитектуру рантайма. Можно переключать алгоритмы в зависимости от результата.DisableCompletionDelay()
Отключает короткую «паузу завершения», когда Ziva ненадолго удерживает последнюю задачу на экране. Полезно для CI, автотестов и сценариев, где важно мгновенно перейти к следующему шагу.EnableEmbeddedMode()
Включает упрощённую цветовую схему и макет для терминалов с ограниченными возможностями.EnableASCIIMode()
Заменяет символы псевдографики на ASCII-аналоги.IsEmbeddedColorMode() bool
Показывает, активен ли в данный момент «встроенный» режим.Управление цветами
SetErrorColor(message, status lipgloss.TerminalColor)
Настраивает цвета ошибок и меток статуса.ResetErrorColors()
Возвращает цвета ошибок к значениям по умолчанию.SetExitMenuItemStyle(style lipgloss.Style)
Меняет стиль отображения локализованных пунктов меню «Выход» в задачах со списками.SetBackMenuItemStyle(style lipgloss.Style)
Меняет стиль отображения локализованных пунктов меню «Назад» в задачах со списками.Строковые и производительные утилиты
RepeatEfficient(s string, count int) string
Создаёт строку повторениемs
— минимизирует аллокации.
JoinEfficient(parts []string, sep string) string
Быстро объединяет срез строк с разделителем.FastConcat(parts …string) string
Соединяет несколько строк без промежуточных аллокаций.CleanWhitespaceEfficient(s string) string
Схлопывает повторяющиеся пробелы и переносы строк.Кэш интернирования строк
InternString(s string) string
Возвращает общую ссылку на строку, если она уже встречалась. Удобно для повторяющихся заголовков/подписей.GetCacheStats() (size, capacity int)
Статистика кэша интернированных строк.ClearInternCache()
Очищает кэш — полезно при завершении работы CLI или после крупной операции.Макет и списки
CalculateLayoutWidth(screenWidth int) int
Подсказывает оптимальную ширину вывода с учётом отступов Ziva.Валидаторы верхнего уровня
Если нужен валидатор вне фабрикиDefaultValidators
, используйте функции-конструкторы.
Validate
и Description
, поэтому их можно комбинировать с собственными проверками.
Комплексный пример
Когда использовать эти функции
- Перед запуском очередей. Настройка языка, автоматическая конфигурация и режимы отображения должны быть выполнены в начале программы.
- Вспомогательные пакеты. Утилиты работы со строками удобно использовать при подготовке сообщений/шаблонов.
- Экономия памяти. Интернирование эффективно в долгоживущих CLI, где много повторяющихся строк.
- Переиспользование валидаторов. Фабричные функции помогают описать правила, которые не вошли в
DefaultValidators
.