splash-rs/src/lib.rs

24 lines
622 B
Rust

pub fn highlight(code: &str) -> String {
unsafe {
let mut html_len: u64 = 0;
let html_ptr = highlight_swift(code.as_ptr(), code.len() as u64, &mut html_len);
String::from_raw_parts(html_ptr, html_len as usize, html_len as usize)
}
}
extern "C" {
fn highlight_swift(code_ptr: *const u8, code_len: u64, html_len_ptr: *mut u64) -> *mut u8;
}
#[cfg(test)]
mod tests {
#[test]
fn test_highlight() {
let result = super::highlight("1+1");
assert_eq!(
result,
r#"<span class="hl-num">1</span>+<span class="hl-num">1</span>"#
);
}
}