Skip to content

Commit b02eca1

Browse files
SwonDevclaude
andcommitted
fix(hex): clippy 1.98 señala una indexación que no puede probar segura
`chunks_exact(2)` da rodajas y hay que indexarlas —`pair[0]`, `pair[1]`—; `as_chunks::<2>()` entrega parejas ya formadas y el patrón las desarma sin índices. Mismo resultado, una comprobación de límites menos. Lo vio el CI y no mi máquina: el flujo usa la estable del día, que aquí era una versión por detrás. Comprobado ahora con la misma —1.98.0— sobre las tres puertas de Rust. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 5178162 commit b02eca1

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src-tauri/src/agent/crypto.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,9 +291,13 @@ pub fn from_hex(text: &str) -> Option<Vec<u8>> {
291291
}
292292
let raw = text.as_bytes();
293293
let mut output = Vec::with_capacity(raw.len() / 2);
294-
for pair in raw.chunks_exact(2) {
295-
let high = (pair[0] as char).to_digit(16)?;
296-
let low = (pair[1] as char).to_digit(16)?;
294+
// `as_chunks` entrega parejas ya formadas —`[u8; 2]`—, así que no hay que
295+
// indexar dentro de cada una. El resto sobra siempre: la longitud se
296+
// comprobó múltiplo de dos ahí arriba.
297+
let (parejas, _resto) = raw.as_chunks::<2>();
298+
for [alto, bajo] in parejas {
299+
let high = (*alto as char).to_digit(16)?;
300+
let low = (*bajo as char).to_digit(16)?;
297301
output.push(((high << 4) | low) as u8);
298302
}
299303
Some(output)

0 commit comments

Comments
 (0)