From d203aaf5d368cd8cdaecf82df03ee14260844224 Mon Sep 17 00:00:00 2001 From: Nathan Fisher Date: Fri, 3 May 2024 00:41:21 -0400 Subject: [PATCH] Fix encoding test failures caused by incorrect padding calculation --- src/encode.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/encode.rs b/src/encode.rs index fe59294..fbbd3a5 100644 --- a/src/encode.rs +++ b/src/encode.rs @@ -80,9 +80,12 @@ impl Encoder { num |= *n as u64; } } - let pad = n_bytes * 8 % 6; + let mut outlen = n_bytes * 8 / 6; + if n_bytes * 8 % 6 > 0 { + outlen += 1; + } for idx in (0..4).rev() { - if pad == 0 || idx < 4 - pad { + if outlen == 4 || idx < outlen { let b = num & 0b111111; obuf[idx] = self.alphabet.items[b as usize]; } @@ -96,7 +99,7 @@ impl Encoder { char::try_from(obuf[2]).unwrap(), char::try_from(obuf[3]).unwrap() )?; - if pad > 0 { + if outlen < 4 { break; } }