Re: Библиотека форматирования marty::format
От: kov_serg Россия  
Дата: 14.04.25 19:30
Оценка:
Здравствуйте, Marty, Вы писали:

M>Библиотека предназначена для встройки в кастомную динамику, поэтому я не задрачивался на всякие новые фишки плюсов — constexpr/constinit/consteval

M>Одна из базовых фич — совмещение форматной строки С++20 std::format и форматных строк питона — можно использовать без модификации и то и другое.
M>Но либу можно и из плюсиков нативно использовать, передавая аргументы через std::initializer_list{...}

M>Возможности библиотеки

Обычно инструмент, должен решать какие-то задачи или устранять рутину, а вот уже возможности вытикают из имеющихся ограничений.

M> * Добавление возможностей C++ std::format из C++20 в C++17 (бэкпорт новых фич в старый стандарт).

То есть c++17 это минимальное требование.
M> * Совместимость форматной строки с форматной строкой языков Python и C++. Некоторые возможности этих языков игнорируются, но не вызывают ошибки при разборе форматной строки. В библиотеке совмещены возможности форматирования из языка `Python` и возможности форматирования `C++20` `std::format`.
M> * Поддержка именованных аргументов для C++ при использовании соответствующих контейнеров для аргументов.
Это здорово
M> * Поддержка передачи аргументов через std::initializer_list для непосредственного использования из C++.
M> * Упор на использование библиотеки в своих скриптовых языках/DSL языках.
В скриптовых языках есть более удобное форматирование например https://jinja.palletsprojects.com/en/stable/templates/ https://docs.phalcon.io/4.2/volt
M> * Поддержка Unicode в кодировке UTF-8.
А как вы ширину utf8 строки считаете для выравнивания текста?
M> * Поддержка чисел с плавающей точкой произвольной размерности marty::Decimal.
Серьёзно по основанию 10? Это чисто для бухгалтерии тольео такое надо.
M> * Поддержка пользовательских типов строк вместо std::string и поддержка микроконтроллеров (STM32, как пример). Пока не реализовано, но весьма ready, требует отключения части кода условными макросами, также требуется модифицировать некоторые части, пока завязанные на std::string.
А отключить тесты можно?

M> * Возможность создания собственной системы/библиотеки форматирования на базе данной библиотеки с поддержкой вывода собственных произвольных типов данных.

А фильтры можно? Типа {{x|filter1|filter2}} => filter2(filter1(x)). (Что бы можно было sql запросы наример или xml экранировать строки или просто camelcase делать). Можноли изменить кастомизировать функцию расчета ширины.

M>Собственно, форматирование по всем правилам форматной строки пока не реализовано, оно будет делаться по мере необходимости, и после того, как я решу, как быть с некоторыми проблемами — например, как быть, если спецификатор типа в форматной строке никак не соответствует фактическому параметру.

M>Пока всё обрабатывается без ошибок через вставку текста при помощи обёрток над std::to_string.

M>Шамжа шлак приносит, а дискуссии несколько экранов занимают.

Так вы не правильно вопросы задаёте.
Надо не вот, зацените, какие замечания. Что требует установить, собрат, прогнать тестовые сценарии, осмотреться и ещё кучу действий. Мало лишь кто способен просто так колупаться в чужом коде, более требующее длительного погружения, без везких причин.
Вы бы начали с примеров, как всё красиво и компактно и вот если сделать так то будет счастье, и ссылку на счастье.
Шамжа приносить темы обсуждение котрыех не требует больших усилий, иногда и смысла там тоже не много. Зато он их наваливает, как-будто ему за это платят
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.