#string #allocation #replace #lazy-evaluation #intermediate #display #replaced

lazy-string-replace

String::replace 的惰性版本,以便可以在不进行中间分配的情况下进行格式化或递归替换

3 个版本

0.1.3 2019 年 10 月 4 日
0.1.2 2019 年 9 月 23 日
0.1.1 2019 年 8 月 27 日
0.1.0 2019 年 8 月 27 日

#3 in #replaced

Unlicense

64KB
1K SLoC

这个crate允许您显示包含替换内容的字符串,而实际上并不进行任何替换,直到格式化时,并完全避免分配。

这在您进行 .replace 操作后立即将结果传递给 format! 时非常有用 - 它将防止发生中间分配。您甚至可以将结果用于另一个 .lazy_replace 调用,并且它仍然会避免分配,尽管它可能多次执行内部替换。通过外部crate以泛型方式将 Display::fmt 的结果进行缓存以避免重复工作,这需要分配,因此超出了此crate的范围。

依赖项

~170–315KB