Single

Build Status crates.io downloads version downloads issues open issues closed

This crate exposes a Single trait for extracting the element from a single-element iterator.

License

You may use this crate under the MIT license or the Apache License (Version 2) at your discretion. This crate is dual-licensed for compatibility with rust itself.

Trait single::Single

rust pub trait Single { type Item; fn single(self) -> Result<Self::Item, Error>; }

Associated Types

type Item

The item type of the wrapped iterator.

Required Methods

fn single(self) -> Result<Self::Item, Error>

Get the single element from a single-element iterator.

Note that many iterators return references to the elements, so this method will as well if the backing iterator does.

Examples

assert_eq!(iter::empty::().single(), Err(single::Error::NoElements));
assert_eq!(iter::once(0).single(), Ok(0));
assert_eq!(iter::repeat(0).single(), Err(single::Error::MultipleElements));

Implementors

rust impl<I> Single for I where I: Iterator