fix(nix-compat/nixbase32): mark encode_len/decode_len const

Change-Id: Ib688bbb37cd54cfcd01e5cb3a8c376414ee8311e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9926
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
edef 2023-11-04 16:22:39 +00:00
parent c8cc31e079
commit 6cec663aa1
2 changed files with 3 additions and 10 deletions

View file

@ -134,12 +134,12 @@ fn find_invalid(input: &[u8]) -> u8 {
} }
/// Returns the decoded length of an input of length len. /// Returns the decoded length of an input of length len.
pub fn decode_len(len: usize) -> usize { pub const fn decode_len(len: usize) -> usize {
(len * 5) / 8 (len * 5) / 8
} }
/// Returns the encoded length of an input of length len /// Returns the encoded length of an input of length len
pub fn encode_len(len: usize) -> usize { pub const fn encode_len(len: usize) -> usize {
(len * 8 + 4) / 5 (len * 8 + 4) / 5
} }

View file

@ -15,9 +15,7 @@ mod utils;
pub use utils::*; pub use utils::*;
pub const DIGEST_SIZE: usize = 20; pub const DIGEST_SIZE: usize = 20;
// lazy_static doesn't allow us to call NIXBASE32.encode_len(), so we ran it pub const ENCODED_DIGEST_SIZE: usize = nixbase32::encode_len(DIGEST_SIZE);
// manually and have an assert in the tests.
pub const ENCODED_DIGEST_SIZE: usize = 32;
// The store dir prefix, without trailing slash. // The store dir prefix, without trailing slash.
// That's usually where the Nix store is mounted at. // That's usually where the Nix store is mounted at.
@ -298,11 +296,6 @@ mod tests {
use super::{Error, StorePath}; use super::{Error, StorePath};
#[test]
fn encoded_digest_size() {
assert_eq!(ENCODED_DIGEST_SIZE, nixbase32::encode_len(DIGEST_SIZE));
}
#[test] #[test]
fn happy_path() { fn happy_path() {
let example_nix_path_str = let example_nix_path_str =