use std::fs::File; use std::io::{Error, ErrorKind, Result, Write}; use std::process::Command; use crate::game::*; use crate::gui::*; const FILE_NAME: &str = "/tmp/takwrap_ptn_consult.ptn"; pub fn consult_next_action(game: &Game, proc: &str) -> Result { let file = File::create(FILE_NAME)?; write!(&file, "{}", game)?; let output = Command::new(proc).args(&[FILE_NAME]).output()?; match String::from_utf8(output.stdout) { Err(e) => Err(Error::new(ErrorKind::InvalidData, e)), Ok(raw) => Ok(GUIResult::Raw(raw.trim().to_string())), } }