Expand description

Blanket traits providing methods for turning anything into an Option or a Result.

Inspired by tap::Pipe, which provides a pipe method that allows the user to call any bare function in the middle of a method chain.

The most useful of these traits’ methods is probably IntoResult::into_ok. Instead of wrapping a long method-chain expression in a call to Ok, try tacking an .into_ok() at the end. This can be especially pleasing in functions that return a Result and make judicious use of method chains and the ? operator.

use tailsome::IntoResult;


fn build_pipeline() -> Result<Example, Error> {
        .try_set_option("some flag")?
        .set_option("another option")

struct Example;

struct Builder;
impl Builder {
    fn new() -> Self { Self }
    fn set_option<T>(self, t: T) -> Self { self }
    fn try_set_option<T>(self, t: T) -> Result<Self, Error> { Ok(self) }
    fn build(self) -> Example { Example }

struct Error;


Provides into_some. Implemented for all Sized types.

Provides into_ok and into_err. Implemented for all Sized types.