Skip to content

impl a From instead of an Into #836

Closed

Description

@mightyiam

impl<A, B> Into<Option<Either<A, B>>> for EitherOrBoth<A, B> {
fn into(self) -> Option<Either<A, B>> {
match self {
EitherOrBoth::Left(l) => Some(Either::Left(l)),
EitherOrBoth::Right(r) => Some(Either::Right(r)),
_ => None,
}
}
}

Activity

  1. Philippe-Cholet commented on Jan 9, 2024

    @Philippe-Cholet
    Member

    It originated in #740 (From should be prefered to Into implementation as the first gives the second but it's not true the other way) where I said #740 (comment)

    I don't see a point of not doing it so I suggest you convert it to a From implementation in a separate commit.

    EDIT: After searching, it originated in #327 and nobody said it should not be From instead.

    In #327, there is

    A fallible method of converting EitherOrBoth into an Either would be very useful providing exclusive (not including Both variant) methods. Converting should probably wait for rust-lang/rust#33417.

    So I guess the question is: Instead of Into<Option<_>>, do we want a TryFrom or a From implementation?
    I would vote for From (better than Into, no breaking change) over TryFrom (breaking change, what kind of error?).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions