#![feature(core_intrinsics)]
#![feature(fused)]
#![feature(inclusive_range)]
#![feature(lang_items)]
#![feature(pattern)]
#![feature(slice_get_slice)]
#![feature(slice_rotate)]
#![feature(slice_rsplit)]
#![feature(specialization)]
#![feature(staged_api)]
#![feature(swap_with_slice)]
#![feature(unique)]
#![no_std]
extern crate containers;
use containers::{boxed, collections};
pub mod allocator;
pub mod borrow;
pub mod range;
pub mod slice;
/// An endpoint of a range of keys.
///
/// # Examples
///
/// `Bound`s are range endpoints:
///
/// ```
/// #![feature(collections_range)]
///
/// use std::collections::range::RangeArgument;
/// use std::collections::Bound::*;
///
/// assert_eq!((..100).start(), Unbounded);
/// assert_eq!((1..12).start(), Included(&1));
/// assert_eq!((1..12).end(), Excluded(&12));
/// ```
#[stable(feature = "collections_bound", since = "0.2")]
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)]
pub enum Bound<T> {
/// An inclusive bound.
#[stable(feature = "collections_bound", since = "0.2")]
Included(#[stable(feature = "collections_bound", since = "0.2")] T),
/// An exclusive bound.
#[stable(feature = "collections_bound", since = "0.2")]
Excluded(#[stable(feature = "collections_bound", since = "0.2")] T),
/// An infinite endpoint. Indicates that there is no bound in this direction.
#[stable(feature = "collections_bound", since = "0.2")]
Unbounded,
}