I love that I can populate a const array using a const fn:
https://github.com/jamagin/cryptopals/blob/b7e79c0eb8faa9ae2bf1f0f5af2a462fa35459aa/src/bytes.rs#L21
and have the values in the array be Ok(value) for valid inputs and Err(Base64ParseError) for the rest
I think with some more experience I could write something even clearer for the rest of the implementation, but this feels like a good start:
https://github.com/jamagin/cryptopals/blob/b7e79c0eb8faa9ae2bf1f0f5af2a462fa35459aa/src/bytes.rs#L57
Still trying to feel out what's the most sensible thing for arguments and return values in an API, &[u8] vs Vec<u8>