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

lazy-string-replace

A lazy version of String::replace, so that it can be formatted or recursively replaced without intermediate allocations

3 releases

0.1.3 Oct 4, 2019
0.1.2 Sep 23, 2019
0.1.1 Aug 27, 2019
0.1.0 Aug 27, 2019

#2 in #replaced

Unlicense

64KB
1K SLoC

This crate allows you to Display::fmt strings that include replacements, without actually doing any replacement until format-time and totally avoiding allocation.

This is useful when you do .replace and then immediately pass the result to format! - it will prevent the intermediate allocation from happening. You can even use the result in another .lazy_replace call and it will still avoid allocation, although it may do the inner replacement multiple times. The work of memoizing the result of Display::fmt to avoid duplicating work can be done in a generic way by an external crate and requires allocation, so is out of the scope of this crate.

Dependencies

~250KB