esp32_wasm_hal/
print.rs

1//! esp32-wasm print implementation
2//! 
3// Copyright 2020 Ryan Kurte
4
5use core::fmt::Write;
6
7use crate::runtime;
8
9// Writer object wrapping underlying env::log_write function
10pub 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}