Type Definition coca::ArenaString

source · []
pub type ArenaString<'a, I = usize> = String<ArenaStorage<'a, ArrayLayout<u8>>, I>;
Expand description

A string using an arena-allocated byte slice for storage.

Examples

use coca::arena::Arena;
use coca::ArenaString;
use core::mem::MaybeUninit;

let mut backing_region = [MaybeUninit::uninit(); 160];
let mut arena = Arena::from(&mut backing_region[..]);

let s: ArenaString<'_, usize> = arena.try_with_capacity(100).unwrap();
assert!(arena.try_with_capacity::<_, ArenaString<'_, usize>>(100).is_none());

Implementations

Converts the given boxed str slice into a String.

Examples
use coca::arena::Arena;
use core::mem::MaybeUninit;

let mut backing_region = [MaybeUninit::uninit(); 1024];
let mut arena = Arena::from(&mut backing_region[..]);
 
let boxed_str = coca::fmt!(arena, "{}", 1234567890)?;
let mut string = coca::ArenaString::<'_, usize>::from_boxed_str(boxed_str);
 
string.retain(|c| (c as u8) % 2 == 1);
assert_eq!(string, "13579");

Converts the ArenaString into an owned str slice.

Examples
use coca::arena::Arena;
use core::mem::MaybeUninit;

let mut backing_region = [MaybeUninit::uninit(); 1024];
let mut arena = Arena::from(&mut backing_region[..]);
 
let mut string = arena.string_with_capacity_from(16usize, "Hello, ");
string.push('W');
string.push_str("orld!");
 
let boxed_str = string.into_boxed_str();
assert_eq!(boxed_str.as_ref(), "Hello, World!");