use smem::*;
use std::io::Write;
fn main() {
println!("enter q to finish...");
let mut smem = SMem::new();
smem.create("test_smem", 65536).unwrap();
let ptr = smem.map();
unsafe {
loop {
while std::ptr::read_volatile(ptr) != 0x00 {}
print!("enter something...: ");
std::io::stdout().flush().unwrap();
let mut s = String::new();
std::io::stdin().read_line(&mut s).unwrap();
std::ptr::copy_nonoverlapping(s.as_ptr(), ptr.add(1), s.len());
std::ptr::write_volatile(ptr.add(1).add(s.len()), 0x00); std::ptr::write(ptr, 1);
if s.strip_suffix("\r\n")
.or_else(|| s.strip_suffix('\n'))
.unwrap_or(&s)
== "q"
{
break;
}
}
}
smem.unmap();
}