Я не использовал text-builder
, но он претендует на звание "Эффективного строгого текста строитель" (выделено мной), в то время как стандарт Data.Text.Lazy.Builder
создает ленивый Text
(по сути, связанный списокмассивов UTF-16).Смысл обеих библиотек (идея Builder
) заключается в том, чтобы избежать скопления и копирования при накоплении строки путем добавления.
Мне кажется, что библиотека text-builder
в основном ограничиваетсам к типам со статически известным размером.Я полагаю, причина его существования в том, что это можно сделать более эффективным, чем обычный компоновщик в text
;в run
вы можете выделить только один раз и затем сериализовать в массив, где в Data.Text.Lazy.Builder
вам может понадобиться увеличивать или выделять новые порции по мере продвижения.И если вам действительно нужен строгий Text
, то вам, вероятно, все равно придется заплатить за копирование всех этих блоков (и это может также потребовать дополнительного копирования промежуточного строгого Text
, я не уверен).
Но это в основном домыслы.Возможно, Никита Волков присоединится.