Fix clippy lints
This commit is contained in:
parent
c507b592c3
commit
e1b6514f24
2 changed files with 20 additions and 22 deletions
|
@ -54,7 +54,7 @@ impl<'a> From<nom::Err<nom::error::Error<&'a [u8]>>> for DecodeError<'a> {
|
||||||
// ----
|
// ----
|
||||||
|
|
||||||
/// Decodes a NetText string into the term it represents.
|
/// Decodes a NetText string into the term it represents.
|
||||||
pub fn decode<'a>(input: &'a [u8]) -> DecodeResult<'a, Term<'a, 'static>> {
|
pub fn decode(input: &[u8]) -> DecodeResult<'_, Term<'_, 'static>> {
|
||||||
let (rest, term) = decode_term(input)?;
|
let (rest, term) = decode_term(input)?;
|
||||||
let (end, _) = take_while(is_whitespace)(rest)?;
|
let (end, _) = take_while(is_whitespace)(rest)?;
|
||||||
if !end.is_empty() {
|
if !end.is_empty() {
|
||||||
|
@ -63,7 +63,7 @@ pub fn decode<'a>(input: &'a [u8]) -> DecodeResult<'a, Term<'a, 'static>> {
|
||||||
Ok(Term(term))
|
Ok(Term(term))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn decode_term<'a>(input: &'a [u8]) -> IResult<&'a [u8], AnyTerm<'a, 'static>> {
|
fn decode_term(input: &[u8]) -> IResult<&'_ [u8], AnyTerm<'_, 'static>> {
|
||||||
eprintln!("DT: `{}`", debug(input));
|
eprintln!("DT: `{}`", debug(input));
|
||||||
let (start, _) = take_while(is_whitespace)(input)?;
|
let (start, _) = take_while(is_whitespace)(input)?;
|
||||||
eprintln!("DT2: `{}`", debug(start));
|
eprintln!("DT2: `{}`", debug(start));
|
||||||
|
@ -79,7 +79,7 @@ fn decode_term<'a>(input: &'a [u8]) -> IResult<&'a [u8], AnyTerm<'a, 'static>> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn decode_nonlist_term<'a>(input: &'a [u8]) -> IResult<&'a [u8], NonListTerm<'a, 'static>> {
|
fn decode_nonlist_term(input: &[u8]) -> IResult<&'_ [u8], NonListTerm<'_, 'static>> {
|
||||||
eprintln!("DNLT: `{}`", debug(input));
|
eprintln!("DNLT: `{}`", debug(input));
|
||||||
let (rest, term) = alt((
|
let (rest, term) = alt((
|
||||||
map(decode_str, NonListTerm::Str),
|
map(decode_str, NonListTerm::Str),
|
||||||
|
@ -89,7 +89,7 @@ fn decode_nonlist_term<'a>(input: &'a [u8]) -> IResult<&'a [u8], NonListTerm<'a,
|
||||||
Ok((rest, term))
|
Ok((rest, term))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn decode_str<'a>(input: &'a [u8]) -> IResult<&'a [u8], &'a [u8]> {
|
fn decode_str(input: &[u8]) -> IResult<&'_ [u8], &'_ [u8]> {
|
||||||
eprintln!("DS: `{}`", debug(input));
|
eprintln!("DS: `{}`", debug(input));
|
||||||
let (rest, data) = take_while1(is_string_char)(input)?;
|
let (rest, data) = take_while1(is_string_char)(input)?;
|
||||||
Ok((rest, data))
|
Ok((rest, data))
|
||||||
|
@ -97,7 +97,7 @@ fn decode_str<'a>(input: &'a [u8]) -> IResult<&'a [u8], &'a [u8]> {
|
||||||
|
|
||||||
type DictType<'a> = (&'a [u8], HashMap<&'a [u8], AnyTerm<'a, 'static>>);
|
type DictType<'a> = (&'a [u8], HashMap<&'a [u8], AnyTerm<'a, 'static>>);
|
||||||
|
|
||||||
fn decode_dict<'a>(dict_begin: &'a [u8]) -> IResult<&'a [u8], DictType<'a>> {
|
fn decode_dict(dict_begin: &[u8]) -> IResult<&'_ [u8], DictType<'_>> {
|
||||||
eprintln!("DDbegin: `{}`", debug(dict_begin));
|
eprintln!("DDbegin: `{}`", debug(dict_begin));
|
||||||
let (d, _) = tag(DICT_OPEN)(dict_begin)?;
|
let (d, _) = tag(DICT_OPEN)(dict_begin)?;
|
||||||
eprintln!("DD2: `{}`", debug(d));
|
eprintln!("DD2: `{}`", debug(d));
|
||||||
|
@ -117,13 +117,13 @@ fn decode_dict<'a>(dict_begin: &'a [u8]) -> IResult<&'a [u8], DictType<'a>> {
|
||||||
Ok((dict_end, (dict_raw, dict)))
|
Ok((dict_end, (dict_raw, dict)))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn dict_separator<'a>(d: &'a [u8]) -> IResult<&'a [u8], ()> {
|
fn dict_separator(d: &[u8]) -> IResult<&'_ [u8], ()> {
|
||||||
let (d, _) = take_while(is_whitespace)(d)?;
|
let (d, _) = take_while(is_whitespace)(d)?;
|
||||||
let (d, _) = tag(DICT_DELIM)(d)?;
|
let (d, _) = tag(DICT_DELIM)(d)?;
|
||||||
Ok((d, ()))
|
Ok((d, ()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn decode_dict_item<'a>(d: &'a [u8]) -> IResult<&'a [u8], (&'a [u8], AnyTerm<'a, 'static>)> {
|
fn decode_dict_item(d: &[u8]) -> IResult<&'_ [u8], (&'_ [u8], AnyTerm<'_, 'static>)> {
|
||||||
eprintln!("DDI: `{}`", debug(d));
|
eprintln!("DDI: `{}`", debug(d));
|
||||||
let (d, _) = take_while(is_whitespace)(d)?;
|
let (d, _) = take_while(is_whitespace)(d)?;
|
||||||
eprintln!("DDI1: `{}`", debug(d));
|
eprintln!("DDI1: `{}`", debug(d));
|
||||||
|
|
|
@ -199,17 +199,15 @@ impl<'a, 'b> Term<'a, 'b> {
|
||||||
/// ```
|
/// ```
|
||||||
pub fn list_of_first<const N: usize>(&self) -> Result<[Term<'a, '_>; N], TypeError> {
|
pub fn list_of_first<const N: usize>(&self) -> Result<[Term<'a, '_>; N], TypeError> {
|
||||||
match self.0.mkref() {
|
match self.0.mkref() {
|
||||||
AnyTerm::ListRef(raw, list) => {
|
AnyTerm::ListRef(raw, list) => match list.len().cmp(&N) {
|
||||||
if list.len() < N {
|
std::cmp::Ordering::Less => Err(TypeError::WrongLength(list.len(), N)),
|
||||||
Err(TypeError::WrongLength(list.len(), N))
|
std::cmp::Ordering::Equal => Ok(list
|
||||||
} else if list.len() == N {
|
.iter()
|
||||||
Ok(list
|
.map(|x| Term(x.mkref().into()))
|
||||||
.iter()
|
.collect::<Vec<_>>()
|
||||||
.map(|x| Term(x.mkref().into()))
|
.try_into()
|
||||||
.collect::<Vec<_>>()
|
.unwrap()),
|
||||||
.try_into()
|
std::cmp::Ordering::Greater => {
|
||||||
.unwrap())
|
|
||||||
} else {
|
|
||||||
let mut ret = Vec::with_capacity(N);
|
let mut ret = Vec::with_capacity(N);
|
||||||
for item in list[0..N - 1].iter() {
|
for item in list[0..N - 1].iter() {
|
||||||
ret.push(Term(item.mkref().into()));
|
ret.push(Term(item.mkref().into()));
|
||||||
|
@ -227,7 +225,7 @@ impl<'a, 'b> Term<'a, 'b> {
|
||||||
|
|
||||||
Ok(ret.try_into().unwrap())
|
Ok(ret.try_into().unwrap())
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
x if N == 1 => Ok([Term(x)]
|
x if N == 1 => Ok([Term(x)]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
|
@ -342,7 +340,7 @@ impl<'a, 'b> AnyTerm<'a, 'b> {
|
||||||
fn mkref(&self) -> AnyTerm<'a, '_> {
|
fn mkref(&self) -> AnyTerm<'a, '_> {
|
||||||
match &self {
|
match &self {
|
||||||
AnyTerm::Str(s) => AnyTerm::Str(s),
|
AnyTerm::Str(s) => AnyTerm::Str(s),
|
||||||
AnyTerm::Dict(r, d) => AnyTerm::DictRef(r, &d),
|
AnyTerm::Dict(r, d) => AnyTerm::DictRef(r, d),
|
||||||
AnyTerm::DictRef(r, d) => AnyTerm::DictRef(r, d),
|
AnyTerm::DictRef(r, d) => AnyTerm::DictRef(r, d),
|
||||||
AnyTerm::List(r, l) => AnyTerm::ListRef(r, &l[..]),
|
AnyTerm::List(r, l) => AnyTerm::ListRef(r, &l[..]),
|
||||||
AnyTerm::ListRef(r, l) => AnyTerm::ListRef(r, l),
|
AnyTerm::ListRef(r, l) => AnyTerm::ListRef(r, l),
|
||||||
|
@ -361,7 +359,7 @@ impl<'a, 'b> NonListTerm<'a, 'b> {
|
||||||
fn mkref(&self) -> NonListTerm<'a, '_> {
|
fn mkref(&self) -> NonListTerm<'a, '_> {
|
||||||
match &self {
|
match &self {
|
||||||
NonListTerm::Str(s) => NonListTerm::Str(s),
|
NonListTerm::Str(s) => NonListTerm::Str(s),
|
||||||
NonListTerm::Dict(r, d) => NonListTerm::DictRef(r, &d),
|
NonListTerm::Dict(r, d) => NonListTerm::DictRef(r, d),
|
||||||
NonListTerm::DictRef(r, d) => NonListTerm::DictRef(r, d),
|
NonListTerm::DictRef(r, d) => NonListTerm::DictRef(r, d),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -387,7 +385,7 @@ impl<'a, 'b> std::fmt::Display for Term<'a, 'b> {
|
||||||
|
|
||||||
// ---- DEBUG REPR ----
|
// ---- DEBUG REPR ----
|
||||||
|
|
||||||
pub fn debug<'a>(x: &'a [u8]) -> &'a str {
|
pub fn debug(x: &[u8]) -> &str {
|
||||||
std::str::from_utf8(x).unwrap_or("<invalid ascii>")
|
std::str::from_utf8(x).unwrap_or("<invalid ascii>")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue