Code Monkey home page Code Monkey logo

either's Introduction

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.8"

Recent Changes

  • 1.8.0
    • 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)
    • Specialize more methods of the io traits, by @Kixunil and @cuviper (#75)
  • 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.

either's People

Contributors

cuviper avatar bluss avatar m4rw3r avatar aomader avatar tonalidadehidrica avatar mathstuf avatar mikailbag avatar thomaseizinger avatar rampantmonkey avatar dcjanus avatar kerollmops avatar hcpl avatar pthariensflame avatar spenserblack avatar ten0 avatar zachs18 avatar atouchet avatar rivertam avatar twey avatar trivikr avatar lipen avatar mglagla avatar kixunil avatar manonthemat avatar nvzqz avatar anderender avatar stebalien avatar mexus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.