1use core::fmt::Write;
6
7use crate::runtime;
8
9pub struct WasmPrint;
11
12impl Write for WasmPrint {
13
14 fn write_str(&mut self, src: &str) -> Result<(), core::fmt::Error> {
15 let s = src.as_bytes();
16
17 let p: *const u8 = s.as_ptr();
18 let l = s.len() as i32;
19
20 unsafe { runtime::log_write( p, l ) };
21
22 Ok(())
23 }
24
25 #[cfg(nope)]
26 fn write_str(&mut self, s: &str) -> std::result::Result<(), std::fmt::Error> {
27 let c = std::ffi::CString::new(s).unwrap();
28 let b = c.as_bytes_with_nul();
29
30 unsafe { runtime::log_write( b.as_ptr(), b.len() as i32 ) };
31
32 Ok(())
33 }
34}