Try — 실패 가능한 연산의 트레잇

Try — 실패 가능한 연산의 트레잇

Try? 연산자가 동작하는 타입을 위한 트레잇이에요. ResultOption이 이를 구현하며, ?로 조기 반환을 지원해요. nightly 전용이었으나 try_trait_v2로 발전했어요.

출처: Rust 공식 문서

본문

pub trait Try: FromResidual {
    type Output;
    type Residual;

    fn from_output(output: Self::Output) -> Self;
    fn branch(self) -> ControlFlow<Self::Residual, Self::Output>;
}

연관 타입

// 성공 시 값 타입
type Output;
// 실패 시 잔여(residual) 타입
type Residual;

필수 메서드

// 출력값으로부터 Self를 만든다
fn from_output(output: Self::Output) -> Self;
// 성공/실패를 분기
fn branch(self) -> ControlFlow<Self::Residual, Self::Output>;

Result<T, E>Output = T, Residual = Result<Infallible, E>이고, Option<T>Output = T, Residual = Option<Infallible>이에요.

더 알아보기 (Learn more)