Tracking issue for ops::Try (try_trait feature) · Issue #42327 · rust-lang/rust (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

@scottmcm

Description

@scottmcm

Feature gate: #![feature(try_trait)]

This is a tracking issue for the Try trait from rust-lang/rfcs#1859.

Split off from #31436 for clarity (per #42275 (comment))

Public API

pub mod core { pub mod result { impl<T, E> ops::Try for Result<T, E> { type Ok = T; type Error = E; fn into_result(self) -> Self {} fn from_ok(v: T) -> Self {} fn from_error(v: E) -> Self {} } }

pub mod option {
    #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
    pub struct NoneError;

    impl<T> ops::Try for Option<T> {
        type Ok = T;
        type Error = NoneError;
        fn into_result(self) -> Result<T, NoneError> {}
        fn from_ok(v: T) -> Self {}
        fn from_error(_: NoneError) -> Self {}
    }
}

pub mod ops {
    mod r#try {
        pub trait Try {
            type Ok;
            type Error;
            fn into_result(self) -> Result<Self::Ok, Self::Error>;
            fn from_error(v: Self::Error) -> Self;
            fn from_ok(v: Self::Ok) -> Self;
        }
    }

    pub use self::r#try::Try;
}

}

Steps / History

Unresolved Questions

These resulted in a new rust-lang/rfcs#3058, tracked in #84277