Spracherkennung für: .rst vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
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`__
__
https://docs.rs/either/
|build_status|_ |crates|_
.. |build_status| image::
https://github.com/bluss/either/workflows/CI/badge.svg?branch=master
.. _build_status:
https://github.com/bluss/either/actions
.. |crates| image::
https://img.shields.io/crates/v/either.svg
.. _crates:
https://crates.io/crates/either
How to use with cargo::
[dependencies]
either = "
1.
8"
Recent Changes
--------------
-
1.
8.
1
- Clarified that the multiple licenses are combined with OR.
-
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.