Wrapping

Wrapping (래핑 연산 제공 구조체)

T에 대해 의도적으로 래핑(wrapping)되는 산술을 제공하는 구조체예요.

출처: Rust 공식 문서

본문

u32 값에 대한 + 같은 연산은 오버플로우해서는 안 되는 것으로 의도되며, 일부 디버그 구성에서는 오버플로우가 감지되어 패닉을 일으켜요. 대부분의 산술이 이 범주에 속하지만, 어떤 코드는 모듈러 산술(예: 해싱)을 명시적으로 기대하고 의존해요. 래핑 산술은 wrapping_add 같은 메서드를 통하거나, 기본 값에 대한 모든 표준 산술 연산이 래핑 의미론을 갖도록 하는 Wrapping 타입을 통해 달성할 수 있어요. 기본 값은 .0을 통해 얻을 수 있어요.

#[repr(transparent)]
pub struct Wrapping<T>(pub T);

더 알아보기 (Learn more)

Rust 공식 문서