diff --git a/poc/poc.yml b/poc/poc.yml index 4e0f25d..274a713 100644 --- a/poc/poc.yml +++ b/poc/poc.yml @@ -17,17 +17,17 @@ channels: notes: cCdDefFgGaAb sheet: aabc. - 'ab°A + 'rt°y +d+d+d--- /ff/f\\ ab>c>) -> String { match e { - nom::Err::Incomplete(needed) => format!( - "input is incomplete, needed {} byte(s) more", - match needed { - nom::Needed::Unknown => "?".to_string(), - nom::Needed::Size(s) => s.to_string(), - } - ), - nom::Err::Error(e) | nom::Err::Failure(e) => format!( - "got error code {code:#?} at \"{input}\"", + nom::Err::Incomplete(needed) => todo!(), + nom::Err::Error(e) => format!( + "got error code {code:#?} at character n°{charn} (after \"{before}\")", code = e.code, - input = e.input + charn = e.input.len() + 1, + before = &e.input[e.input.len() + - option_env!("SHEET_BACKTRACE") + .and_then(|s| s.parse().ok()) + .unwrap_or(10usize) + + 1..] ), + nom::Err::Failure(e) => todo!(), } } @@ -127,7 +127,7 @@ impl<'de> Deserialize<'de> for Atoms { let x = all_consuming(terminated( many0(preceded(many0(one_of(" \t\r")), flat_atom_parser(¬es))), many0(alt((char('\t'), char(' '), char('\n'), char('\r')))), - ))(&sheet) + ))(dbg!(&sheet)) .map_err(nom_err_message) .map_err(AtomsSerializeError::Parsing) .map_err(de::Error::custom)