JSONSerializeFailed(#[from] serde_json::error::Error),
#[error("SVG processing/generation error {0:?}")]
SVGProcessingFailed(#[from] SVGProcessingError),
- #[error("IO error in server {0:?}")]
+ #[error("Server IO error {0:?}")]
ServerIOError(#[from] io::Error),
+ #[error("Server MessagePack encoding error {0:?}")]
+ ServerMessagePackEncodeFail(#[from] rmp_serde::encode::Error),
}
pub use OnlineError::{NoClient,NoPlayer};
use crate::imports::*;
use lazy_static::lazy_static;
+#[allow(dead_code)]
const SAVE_DIRECTORY : &str = "save";
// ---------- newtypes and type aliases ----------
.chain( iter::once(".tmp") )
.collect();
let mut f = BufWriter::new(fs::File::create(&savefile)?);
- rmp_serde::encode::write_named(&mut f, &self.ig.gs);
+ rmp_serde::encode::write_named(&mut f, &self.ig.gs)?;
eprintln!("xxx saved {} to {}!", self.name, &savefile);
}
use OnlineError::*;
let status = match self {
GameCorrupted | JSONSerializeFailed(_) | SVGProcessingFailed(_)
- | ServerIOError(_)
+ | ServerIOError(_) | ServerMessagePackEncodeFail(_)
=> Status::InternalServerError,
NoClient | NoPlayer => Status::NotFound,
InvalidZCoord => Status::BadRequest,