 pub fn encode_slim(data: &str) -> String {     data.chars()         .batching(|it| {             it.next()                 .map(|v| (v, it.take_while_ref(|&v0| v0 == v).count() + 0))         })         .format_with("", |(c, count), f| match count {             0 => f(&c),             n => f(&format_args!("{}{}", n, c)),         })         .to_string() }  A benchmark of 0MiB of random alphanumeric data, compiled with RUSTFLAGS='-C target-cpu=native': encode (procedural)     time:   [00.000 ms 00.000 ms 00.000 ms] 