1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
//! Collection types that allocate inside a [`Bump`] arena.
//!
//! [`Bump`]: ../struct.Bump.html
#![allow(deprecated)]
mod raw_vec;
pub mod vec;
pub use self::vec::Vec;
mod str;
pub mod string;
pub use self::string::String;
mod collect_in;
pub use collect_in::{CollectIn, FromIteratorIn};
// pub mod binary_heap;
// mod btree;
// pub mod linked_list;
// pub mod vec_deque;
// pub mod btree_map {
// //! A map based on a B-Tree.
// pub use super::btree::map::*;
// }
// pub mod btree_set {
// //! A set based on a B-Tree.
// pub use super::btree::set::*;
// }
// #[doc(no_inline)]
// pub use self::binary_heap::BinaryHeap;
// #[doc(no_inline)]
// pub use self::btree_map::BTreeMap;
// #[doc(no_inline)]
// pub use self::btree_set::BTreeSet;
// #[doc(no_inline)]
// pub use self::linked_list::LinkedList;
// #[doc(no_inline)]
// pub use self::vec_deque::VecDeque;
use crate::alloc::{AllocErr, LayoutErr};
/// Augments `AllocErr` with a `CapacityOverflow` variant.
#[derive(Clone, PartialEq, Eq, Debug)]
// #[unstable(feature = "try_reserve", reason = "new API", issue="48043")]
pub enum CollectionAllocErr {
/// Error due to the computed capacity exceeding the collection's maximum
/// (usually `isize::MAX` bytes).
CapacityOverflow,
/// Error due to the allocator (see the documentation for the [`AllocErr`] type).
AllocErr,
}
// #[unstable(feature = "try_reserve", reason = "new API", issue="48043")]
impl From<AllocErr> for CollectionAllocErr {
#[inline]
fn from(AllocErr: AllocErr) -> Self {
CollectionAllocErr::AllocErr
}
}
// #[unstable(feature = "try_reserve", reason = "new API", issue="48043")]
impl From<LayoutErr> for CollectionAllocErr {
#[inline]
fn from(_: LayoutErr) -> Self {
CollectionAllocErr::CapacityOverflow
}
}
// /// An intermediate trait for specialization of `Extend`.
// #[doc(hidden)]
// trait SpecExtend<I: IntoIterator> {
// /// Extends `self` with the contents of the given iterator.
// fn spec_extend(&mut self, iter: I);
// }