Skip to content

Latest commit

 

History

History
158 lines (91 loc) · 3.64 KB

README.rst

File metadata and controls

158 lines (91 loc) · 3.64 KB

Either

The enum Either with variants Left and Right and trait implementations including Iterator, Read, Write.

Either has methods that are similar to Option and Result.

Includes convenience macros try_left!() and try_right!() to use for short-circuiting logic.

Please read the API documentation here

build_status_ crates_

How to use with cargo:

[dependencies]
either = "1.7"

Recent Changes

  • UNRELEASED
    • MSRV: either now requires Rust 1.36 or later.
    • Add new methods .as_pin_ref() and .as_pin_mut() to project a pinned Either as inner Pin variants, by @cuviper (#77)
    • Implement the Future trait, by @cuviper (#77)
  • 1.7.0
    • MSRV: either now requires Rust 1.31 or later.
    • Export the macro for_both!, by @thomaseizinger (#58)
    • Implement the io::Seek trait, by @Kerollmops (#60)
    • Add new method .either_into() for Into conversion, by @TonalidadeHidrica (#63)
    • Add new methods .factor_ok(), .factor_err(), and .factor_none(), by @zachs18 (#67)
    • Specialize source in the Error implementation, by @thomaseizinger (#69)
    • Specialize more iterator methods and implement the FusedIterator trait, by @Ten0 (#66) and @cuviper (#71)
    • Specialize Clone::clone_from, by @cuviper (#72)
  • 1.6.1
    • Add new methods .expect_left(), .unwrap_left(), and equivalents on the right, by @spenserblack (#51)
  • 1.6.0
    • Add new modules serde_untagged and serde_untagged_optional to customize how Either fields are serialized in other types, by @MikailBag (#49)
  • 1.5.3
    • Add new method .map() for Either<T, T> by @nvzqz (#40).
  • 1.5.2
    • Add new methods .left_or(), .left_or_default(), .left_or_else(), and equivalents on the right, by @DCjanus (#36)
  • 1.5.1
    • Add AsRef and AsMut implementations for common unsized types: str, [T], CStr, OsStr, and Path, by @mexus (#29)
  • 1.5.0
    • Add new methods .factor_first(), .factor_second() and .into_inner() by @mathstuf (#19)
  • 1.4.0
    • Add inherent method .into_iter() by @cuviper (#12)
  • 1.3.0
    • Add opt-in serde support by @hcpl
  • 1.2.0
    • Add method .either_with() by @Twey (#13)
  • 1.1.0
    • Add methods left_and_then, right_and_then by @rampantmonkey
    • Include license files in the repository and released crate
  • 1.0.3
    • Add crate categories
  • 1.0.2
    • Forward more Iterator methods
    • Implement Extend for Either<L, R> if L, R do.
  • 1.0.1
    • Fix Iterator impl for Either to forward .fold().
  • 1.0.0
    • Add default crate feature use_std so that you can opt out of linking to std.
  • 0.1.7
    • Add methods .map_left(), .map_right() and .either().
    • Add more documentation
  • 0.1.3
    • Implement Display, Error
  • 0.1.2
    • Add macros try_left! and try_right!.
  • 0.1.1
    • Implement Deref, DerefMut
  • 0.1.0
    • Initial release
    • Support Iterator, Read, Write

License

Dual-licensed to be compatible with the Rust project.

Licensed under the Apache License, Version 2.0 https://www.apache.org/licenses/LICENSE-2.0 or the MIT license https://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.