Step
Step (후속·선행 연산 트레이트)
*후속자(successor)*와 선행자(predecessor) 연산의 개념을 가진 객체를 위한 트레이트예요. 범위(range) 반복을 구현하는 데 쓰여요.
출처: Rust 공식 문서
본문
후속자 연산은 더 큰 값을 비교하는 방향으로 이동하고, 선행자 연산은 더 작은 값을 비교하는 방향으로 이동해요.
시그니처는 다음과 같아요.
pub trait Step:
Sized
+ Clone
+ PartialOrd {
// 필수 메서드
fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>);
fn forward_checked(start: Self, count: usize) -> Option<Self>;
fn backward_checked(start: Self, count: usize) -> Option<Self>;
// 제공되는 메서드
fn forward(start: Self, count: usize) -> Self { ... }
unsafe fn forward_unchecked(start: Self, count: usize) -> Self { ... }
fn backward(start: Self, count: usize) -> Self { ... }
unsafe fn backward_unchecked(start: Self, count: usize) -> Self { ... }
}