Add some debug output to JSON mapper

This commit is contained in:
Matthias Beyer 2017-06-20 20:51:56 +02:00
parent e7e3a75924
commit 14f261a84e

View file

@ -33,7 +33,7 @@ use storeid::StoreId;
use libimagerror::into::IntoError; use libimagerror::into::IntoError;
#[derive(Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
struct BackendEntry { struct BackendEntry {
header: serde_json::Value, header: serde_json::Value,
content: String, content: String,
@ -53,7 +53,7 @@ impl BackendEntry {
} }
#[derive(Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
struct Document { struct Document {
version: String, version: String,
store: HashMap<PathBuf, BackendEntry>, store: HashMap<PathBuf, BackendEntry>,
@ -72,9 +72,13 @@ impl JsonMapper {
impl Mapper for JsonMapper { impl Mapper for JsonMapper {
fn read_to_fs<R: Read>(&self, r: &mut R, hm: &mut HashMap<PathBuf, Entry>) -> Result<()> { fn read_to_fs<R: Read>(&self, r: &mut R, hm: &mut HashMap<PathBuf, Entry>) -> Result<()> {
let mut document = { let mut document = {
debug!("Reading Document");
let mut s = String::new(); let mut s = String::new();
try!(r.read_to_string(&mut s).map_err_into(SEK::IoError)); try!(r.read_to_string(&mut s).map_err_into(SEK::IoError));
debug!("Document = {:?}", s);
debug!("Parsing Document");
let doc : Document = try!(serde_json::from_str(&s).map_err_into(SEK::IoError)); let doc : Document = try!(serde_json::from_str(&s).map_err_into(SEK::IoError));
debug!("Document = {:?}", doc);
doc doc
}; };
@ -84,6 +88,10 @@ impl Mapper for JsonMapper {
// safe because cargo does not compile if crate version is not valid // safe because cargo does not compile if crate version is not valid
let crate_version = ::semver::Version::parse(version!()).unwrap(); let crate_version = ::semver::Version::parse(version!()).unwrap();
debug!("Document version vs. own version: {doc_vers} > {crate_vers}",
doc_vers = doc_vers,
crate_vers = crate_version);
if doc_vers > crate_version { if doc_vers > crate_version {
Err(SEK::VersionError.into_error()) Err(SEK::VersionError.into_error())
} else { } else {
@ -92,9 +100,11 @@ impl Mapper for JsonMapper {
})); }));
for (key, val) in document.store.drain() { for (key, val) in document.store.drain() {
debug!("(key, value) ({:?}, {:?})", key, val);
let res = val let res = val
.to_string() .to_string()
.and_then(|vals| { .and_then(|vals| {
debug!("value string = {:?}", vals);
StoreId::new_baseless(key.clone()) StoreId::new_baseless(key.clone())
.and_then(|id| Entry::from_str(id, &vals)) .and_then(|id| Entry::from_str(id, &vals))
.map(|entry| hm.insert(key, entry)) .map(|entry| hm.insert(key, entry))