Try — 실패 가능한 연산의 트레잇
Try — 실패 가능한 연산의 트레잇
Try는 ? 연산자가 동작하는 타입을 위한 트레잇이에요. Result와 Option이 이를 구현하며, ?로 조기 반환을 지원해요. 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>이에요.