pub fn highlight(code: &str) -> String { unsafe { let mut buf = Vec::new(); buf.reserve( 2usize .pow(1 + (code.len() as f32).log2().ceil() as u32) .max(1024), ); let used = highlight_swift( code.as_ptr(), code.len() as u64, buf.as_mut_ptr(), buf.capacity() as u64, ); buf.set_len(used as usize); String::from_utf8_unchecked(buf) } } extern "C" { fn highlight_swift(code_ptr: *const u8, code_len: u64, out_ptr: *mut u8, max_len: u64) -> u64; } #[cfg(test)] mod tests { #[test] fn test_highlight() { let result = super::highlight("1+1"); assert_eq!( result, r#"1+1"# ); } }