Tenho uma variável na qual faço muitas operações aritméticas.
Meu código era mais ou menos assim:
let a: u32 = 3;
let res = (a*2) - 42
Tive um estouro quando a
estava muito baixo, então tive que usar saturating_sub()
para resolver o problema:
let a: u32 = 3;
let res = (a * 2).saturating_sub(42);
Isso funciona muito bem, mas saturating_sub
é um pouco menos legível que -
.
Como tenho muitas dessas operações, e em todos os casos, quero a
saturar. Eu estava pensando se é possível definir que a
sempre deve saturar . E não substituir every -
por saturate_sub
.
Isto é
std::num::Saturating
, no entanto, ele só implementa operações com outrosSaturating
, não com o primitivo subjacente:Se isso for um problema para você, você pode criar seu próprio tipo: