From 04a25b567a17c2a0764bd6ca7f70290b9fe352dd Mon Sep 17 00:00:00 2001 From: edef Date: Sat, 4 Nov 2023 16:22:39 +0000 Subject: [PATCH] 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 Tested-by: BuildkiteCI --- nix-compat/src/nixbase32.rs | 4 ++-- nix-compat/src/store_path/mod.rs | 9 +-------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/nix-compat/src/nixbase32.rs b/nix-compat/src/nixbase32.rs index 9aed200546..babf768add 100644 --- a/nix-compat/src/nixbase32.rs +++ b/nix-compat/src/nixbase32.rs @@ -134,12 +134,12 @@ fn find_invalid(input: &[u8]) -> u8 { } /// 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 } /// 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 } diff --git a/nix-compat/src/store_path/mod.rs b/nix-compat/src/store_path/mod.rs index faa2280e59..10bf1eb026 100644 --- a/nix-compat/src/store_path/mod.rs +++ b/nix-compat/src/store_path/mod.rs @@ -15,9 +15,7 @@ mod utils; pub use utils::*; pub const DIGEST_SIZE: usize = 20; -// lazy_static doesn't allow us to call NIXBASE32.encode_len(), so we ran it -// manually and have an assert in the tests. -pub const ENCODED_DIGEST_SIZE: usize = 32; +pub const ENCODED_DIGEST_SIZE: usize = nixbase32::encode_len(DIGEST_SIZE); // The store dir prefix, without trailing slash. // That's usually where the Nix store is mounted at. @@ -298,11 +296,6 @@ mod tests { use super::{Error, StorePath}; - #[test] - fn encoded_digest_size() { - assert_eq!(ENCODED_DIGEST_SIZE, nixbase32::encode_len(DIGEST_SIZE)); - } - #[test] fn happy_path() { let example_nix_path_str =