В Rust (как и большинство языков программирования) оператор %
выполняет операцию останова, а не операцию модуля. Эти операции имеют разные результаты для отрицательных чисел:
-21 modulus 4 => 3
-21 remainder 4 => -1
println!("{}", -21 % 4); // -1
Однако я хочу остаток.
Я нашел обходное решение ((a % b) + b) % b
, но я не хочу изобретать колесо, если для этого уже есть функция!