flatland3 0.1.0

Flatland3 terminal play client and account CLI
use std::io::stdout;

use crossterm::event::{KeyboardEnhancementFlags, PushKeyboardEnhancementFlags};
use crossterm::terminal::{
    disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
};
use crossterm::ExecutableCommand;

pub fn enter() -> anyhow::Result<()> {
    enable_raw_mode()?;
    let mut out = stdout();
    out.execute(EnterAlternateScreen)?;
    // Key release events so movement stops when WASD is released.
    out.execute(PushKeyboardEnhancementFlags(
        KeyboardEnhancementFlags::REPORT_EVENT_TYPES,
    ))?;
    Ok(())
}

pub fn leave() -> anyhow::Result<()> {
    let mut out = stdout();
    disable_raw_mode()?;
    out.execute(LeaveAlternateScreen)?;
    Ok(())
}