Simplify encoding snowflakes

This commit is contained in:
Joscha 2022-06-20 22:14:19 +02:00
parent dcbad0a739
commit a57e15c9f3

View file

@ -300,13 +300,8 @@ impl<'de> de::Visitor<'de> for SnowflakeVisitor {
if v.len() != 13 { if v.len() != 13 {
return Err(E::invalid_length(v.len(), &self)); return Err(E::invalid_length(v.len(), &self));
} }
let mut n = 0; let n = u64::from_str_radix(v, 36)
for c in v.chars() { .map_err(|_| E::invalid_value(de::Unexpected::Str(v), &self))?;
let digit = c
.to_digit(36)
.ok_or_else(|| E::invalid_value(de::Unexpected::Str(v), &self))?;
n = n * 36 + digit as u64;
}
Ok(Snowflake(n)) Ok(Snowflake(n))
} }
} }