This crate provides the Single
trait for extracting the element from a single-element iterator.
You may use this crate under the MIT license or the Apache License 2.0 at your discretion. This crate is dual-licensed for compatibility with rust itself.
rust
pub trait Single {
fn single(self) -> Result<Self::Item, Error>;
}
fn single(self) -> Result<Self::Item, Error>
Get the single element from a single-element iterator.
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));
rust
impl<I: Iterator> Single for I {}