pub struct ReusableString { /* private fields */ }Expand description
A wrapper around String that allows for reusing its allocation.
This is particularly useful in loops where strings are built and discarded,
as it helps to avoid frequent memory allocations. When the guard returned
by recycle is dropped, the String is cleared, but its capacity is
retained.
§Examples
use triple_r::ReusableString;
let mut reusable_string = ReusableString::default();
let mut last_capacity = 0;
for i in 0..3 {
let mut string_guard = reusable_string.recycle();
assert!(string_guard.is_empty());
assert_eq!(string_guard.capacity(), last_capacity);
string_guard.push_str("hello world");
last_capacity = string_guard.capacity();
}
let final_guard = reusable_string.recycle();
assert!(final_guard.is_empty());
assert_eq!(final_guard.capacity(), last_capacity);Implementations§
Source§impl ReusableString
impl ReusableString
Sourcepub fn recycle<'parent>(&'parent mut self) -> ReusableStringGuard<'parent>
pub fn recycle<'parent>(&'parent mut self) -> ReusableStringGuard<'parent>
Reuses the String’s allocation, returning a guard for temporary access.
The &mut self requirement ensures that only one guard can be active
at a time.
Trait Implementations§
Source§impl Debug for ReusableString
impl Debug for ReusableString
Source§impl Default for ReusableString
impl Default for ReusableString
impl Send for ReusableString
impl Sync for ReusableString
Auto Trait Implementations§
impl !Freeze for ReusableString
impl !RefUnwindSafe for ReusableString
impl Unpin for ReusableString
impl UnwindSafe for ReusableString
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more