fix: more subtle things

This commit is contained in:
rvcas 2022-06-06 22:51:09 -04:00
parent 4c45c95620
commit 60a920a0ac
No known key found for this signature in database
GPG Key ID: C09B64E263F7D68C
3 changed files with 22 additions and 12 deletions

View File

@ -187,7 +187,10 @@ impl TryFrom<u8> for DefaultFunction {
v if v == DefaultFunction::MkPairData as u8 => Ok(DefaultFunction::MkPairData), v if v == DefaultFunction::MkPairData as u8 => Ok(DefaultFunction::MkPairData),
v if v == DefaultFunction::MkNilData as u8 => Ok(DefaultFunction::MkNilData), v if v == DefaultFunction::MkNilData as u8 => Ok(DefaultFunction::MkNilData),
v if v == DefaultFunction::MkNilPairData as u8 => Ok(DefaultFunction::MkNilPairData), v if v == DefaultFunction::MkNilPairData as u8 => Ok(DefaultFunction::MkNilPairData),
_ => Err(de::Error::Message("Default Function not found".to_string())), _ => Err(de::Error::Message(format!(
"Default Function not found - {}",
v
))),
} }
} }
} }

View File

@ -37,6 +37,10 @@ where
Ok(hex) Ok(hex)
} }
pub fn from_flat(bytes: &'b [u8]) -> Result<Self, de::Error> {
Self::unflat(bytes)
}
} }
impl<'b, T> Encode for Program<T> impl<'b, T> Encode for Program<T>

View File

@ -65,7 +65,7 @@ where
Input::Error: ParseError<Input::Token, Input::Range, Input::Position>, Input::Error: ParseError<Input::Token, Input::Range, Input::Position>,
{ {
let prog = string("program").with(skip_many1(space())).with( let prog = string("program").with(skip_many1(space())).with(
(version(), skip_many1(space()), term().skip(spaces())) (version(), skip_many1(space()), term())
.map(|(version, _, term)| Program { version, term }), .map(|(version, _, term)| Program { version, term }),
); );
@ -100,7 +100,8 @@ where
Input: Stream<Token = char>, Input: Stream<Token = char>,
Input::Error: ParseError<Input::Token, Input::Range, Input::Position>, Input::Error: ParseError<Input::Token, Input::Range, Input::Position>,
{ {
opaque!(no_partial(choice(( opaque!(no_partial(
choice((
attempt(var()), attempt(var()),
attempt(delay()), attempt(delay()),
attempt(lambda()), attempt(lambda()),
@ -109,7 +110,9 @@ where
attempt(force()), attempt(force()),
attempt(error()), attempt(error()),
attempt(builtin()), attempt(builtin()),
)))) ))
.skip(spaces())
))
} }
fn var<Input>() -> impl Parser<StateStream<Input>, Output = Term<Name>> fn var<Input>() -> impl Parser<StateStream<Input>, Output = Term<Name>>