Re[2]: Библиотека форматирования marty::format
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 27.04.25 12:33
Оценка:
Здравствуйте, Marty, Вы писали:


M>Фильтры и пайпы фильтров

M>Также имеется возможность использовать фильтры (пайпы фильтров) для отформатированных значений. Фильтры могут быть как встроенными, так и передаваться, как функтор, в качестве аргумента.
M>Встроенные фильтры: xml, xml-attr, xml-text, html, html-attr, html-text — это алиасы к одному и тому же фильтру. Фильтр sql — дублирует apos'ы
M>Можно иметь до четырёх фильтров в пайпе.

Кстати, если кому интересно, можно добавить встроенных фильтров для JSON, YAML, TOML, если кому интересно. Надо только обсудить, как их сделать. Мне лень искать, по каким правилам там строки экранируются, мне это пока не особо нужно.

Можно ещё сишное экранирование добавить. Хотя, вроде, форматный символ '?' и так это должен делать, но его я пока обрабатываю, как 's'.
Маньяк Робокряк колесит по городу
Re[3]: Библиотека форматирования marty::format
От: kov_serg Россия  
Дата: 27.04.25 13:48
Оценка:
Здравствуйте, Marty, Вы писали:

M>Можно ещё сишное экранирование добавить. Хотя, вроде, форматный символ '?' и так это должен делать, но его я пока обрабатываю, как 's'.

И экранирование командной строки
Re[4]: Библиотека форматирования marty::format
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 27.04.25 13:50
Оценка:
Здравствуйте, kov_serg, Вы писали:

M>>Можно ещё сишное экранирование добавить. Хотя, вроде, форматный символ '?' и так это должен делать, но его я пока обрабатываю, как 's'.

_>И экранирование командной строки

Да, в общем-то, нет проблем, у меня где-то уже даже реализовано
Правда, только под винду, под линупсами там другие правила
Маньяк Робокряк колесит по городу
Re: Библиотека форматирования marty::format
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 12.05.25 17:22
Оценка:
Здравствуйте, Marty, Вы писали:

M>Надо же как-то расти

Чем это лучше fmtlib::fmt?
Sic luceat lux!
Re[2]: Библиотека форматирования marty::format
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 15.05.25 15:00
Оценка:
Здравствуйте, Kernan, Вы писали:

M>>Надо же как-то расти

K>Чем это лучше fmtlib::fmt?

Я поюзал std::format из 20ых плюсов, саму fmtlib не ковырял. Но, полагаю, что в ней есть тот же недостаток, как и в std::format — он у меня отказался работать с динамическими строками. А все нужно в рантайме использовать — например, для форматирования локализованных сообщений.

Далее. Опять же, std::format, а не fmtlib (уверен, там аналогично) — нет поддержки именованных аргументов, только позиционные.

По предложениям трудящихся (и мне тоже показалось полезной идеей) — добавил фильтры — например, сделать экранирование HTML отформатированного значения.

Перетащил из питона некоторые фичи, например, добавил форматные символы '%', 'n' из питона. В целом, вообще сделал форматную строку совместимой с питоновской.

Добавил форматный символ '$' — форматирует валюту, при использовании локали символ валюты берётся из системы.

Добавил вывод bool как строк "TRUE/True/true" и тп.

Целиком можно тут глянуть — https://github.com/al-martyn1/marty_format/blob/main/README.md#%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8

Хотя, тут тоже наверное не всё, мог позабыть что-то вынести в список фич

Да, краткая выжимка фич есть на кывте
Автор: Marty
Дата: 27.04 03:03
, если на гитхаб лень идти
Маньяк Робокряк колесит по городу
Отредактировано 15.05.2025 16:34 Marty . Предыдущая версия .
Re: Библиотека форматирования marty::format
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 15.05.25 16:41
Оценка:
Здравствуйте, Marty, Вы писали:

В общем, допилил. На текущий момент всё необходимое есть.

Добавил поддержку локали (пока только винда, если кто подскажет, как сделать под линупс — можно добавить), подробнее — тут

Из локали берутся разделители разрядов, символ десятичной точки, символ процента, символ валюты, а также форматные строки для отрицательных/положительных значение чисел, процентов и валюты.

Локаль передаётся не как параметр шаблона, а как параметр функции.

Допилил форматирование плавучки. Она основана на std::to_chars, для GCC меньше 11го используются потоки std::ostringstream.

Добавил форматирование валюты (форматный символ '$').

Юзер-литералы — пока лень делать.
Пользовательские типы тоже пока заленился форматировать.

Вроде в целом всё готово.
Маньяк Робокряк колесит по городу
Re: Библиотека форматирования marty::format
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.06.25 16:15
Оценка:
Здравствуйте, Marty, Вы писали:

Присунул поддержку своего marty::BigInt.

Присунул форматирование римскими цифрами — спецификаторы 'r'/'R'. Ноль выводится как строка 'NULLA', бесконечность (все числа больше 9999) — 'INFINITAS'.

Для вывода используются латинские буквы. Можно включить использование 'Unicode'-символов для римских цифр соответствующим флагом при вызове функции форматирования.

Можно обсудить, с какой величины число можно считать бесконечностью. С лимитом 9999 будет выведено девять цифр 'M', а при лимите в 65535 — цифр 'M' будет 65. Так как у римлян не было символов для 5000 и 10000, явно они не пользовались такими числами, и какие большие значения можно было бы вывести римскими цифрами — я хз.
Маньяк Робокряк колесит по городу
Отредактировано 09.06.2025 16:16 Marty . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.