| 1 | //! **arrayvec** provides the types [`ArrayVec`] and [`ArrayString`]: |
|---|---|
| 2 | //! array-backed vector and string types, which store their contents inline. |
| 3 | //! |
| 4 | //! The arrayvec package has the following cargo features: |
| 5 | //! |
| 6 | //! - `std` |
| 7 | //! - Optional, enabled by default |
| 8 | //! - Use libstd; disable to use `no_std` instead. |
| 9 | //! |
| 10 | //! - `serde` |
| 11 | //! - Optional |
| 12 | //! - Enable serialization for ArrayVec and ArrayString using serde 1.x |
| 13 | //! |
| 14 | //! - `zeroize` |
| 15 | //! - Optional |
| 16 | //! - Implement `Zeroize` for ArrayVec and ArrayString |
| 17 | //! |
| 18 | //! ## Rust Version |
| 19 | //! |
| 20 | //! This version of arrayvec requires Rust 1.51 or later. |
| 21 | //! |
| 22 | #![doc(html_root_url= "https://docs.rs/arrayvec/0.7/")] |
| 23 | #![cfg_attr(not(feature= "std"), no_std)] |
| 24 | |
| 25 | #[cfg(feature= "serde")] |
| 26 | extern crate serde; |
| 27 | |
| 28 | #[cfg(not(feature= "std"))] |
| 29 | extern crate core as std; |
| 30 | |
| 31 | pub(crate) type LenUint = u32; |
| 32 | |
| 33 | macro_rules! assert_capacity_limit { |
| 34 | ($cap:expr) => { |
| 35 | if std::mem::size_of::<usize>() > std::mem::size_of::<LenUint>() { |
| 36 | if $cap > LenUint::MAX as usize { |
| 37 | panic!("ArrayVec: largest supported capacity is u32::MAX") |
| 38 | } |
| 39 | } |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | macro_rules! assert_capacity_limit_const { |
| 44 | ($cap:expr) => { |
| 45 | if std::mem::size_of::<usize>() > std::mem::size_of::<LenUint>() { |
| 46 | if $cap > LenUint::MAX as usize { |
| 47 | [/*ArrayVec: largest supported capacity is u32::MAX*/][$cap] |
| 48 | } |
| 49 | } |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | mod arrayvec_impl; |
| 54 | mod arrayvec; |
| 55 | mod array_string; |
| 56 | mod char; |
| 57 | mod errors; |
| 58 | mod utils; |
| 59 | |
| 60 | pub use crate::array_string::ArrayString; |
| 61 | pub use crate::errors::CapacityError; |
| 62 | |
| 63 | pub use crate::arrayvec::{ArrayVec, IntoIter, Drain}; |
| 64 |
