[package] name = "tinyvec" description = "`tinyvec` provides 100% safe vec-like data structures." version = "1.6.0" authors = ["Lokathor "] edition = "2018" license = "Zlib OR Apache-2.0 OR MIT" keywords = ["vec", "no_std", "no-std"] categories = ["data-structures", "no-std"] repository = "https://github.com/Lokathor/tinyvec" [dependencies] tinyvec_macros = { version = "0.1", optional = true } # Provides `Serialize` and `Deserialize` implementations serde = { version = "1.0", optional = true, default-features = false } # Provides derived `Arbitrary` implementations arbitrary = { version = "1", optional = true } [features] default = [] # Provide things that utilize the `alloc` crate, namely `TinyVec`. alloc = ["tinyvec_macros"] # Provide things that require Rust's `std` module std = ["alloc"] # (not part of Vec!) Extra methods to let you grab the slice of memory after the # "active" portion of an `ArrayVec` or `SliceVec`. grab_spare_slice = [] # features that require rustc 1.40 # use Vec::append if possible in TinyVec::append - 1.37 # DoubleEndedIterator::nth_back - 1.40 rustc_1_40 = [] # features that require rustc 1.55 # use const generics to implement Array for all array lengths rustc_1_55 = ["rustc_1_40"] # features that require rustc 1.57 # add try_reserve functions to types that heap allocate. rustc_1_57 = ["rustc_1_55"] # allow use of nightly feature `slice_partition_dedup`, # will become useless once that is stabilized: # https://github.com/rust-lang/rust/issues/54279 nightly_slice_partition_dedup = [] # EXPERIMENTAL: Not part of SemVer. It adds `core::fmt::Write` to `ArrayVec` # and `SliceVec`. It works on Stable Rust, but Vec normally supports the # `std::io::Write` trait instead of `core::fmt::Write`, so we're keeping it as # an experimental impl only for now. experimental_write_impl = [] # Some benchmarks are optimized away with the stable black_box function # which is based on read_volatile. This feature requires inline assembly # and thus a nightly compiler, but is only used in benchmarks. real_blackbox = ["criterion/real_blackbox"] [package.metadata.docs.rs] features = ["alloc", "std", "grab_spare_slice", "rustc_1_40", "rustc_1_55", "serde"] rustdoc-args = ["--cfg","docs_rs"] [package.metadata.playground] features = ["alloc", "std", "grab_spare_slice", "rustc_1_40", "rustc_1_55", "serde"] [profile.test] opt-level = 3 [profile.bench] debug = 2 [workspace] members = ["fuzz"] [dev-dependencies] criterion = "0.3.0" serde_test = "1.0" smallvec = "1" [[test]] name = "tinyvec" required-features = ["alloc", "std"] [[bench]] name = "macros" harness = false required-features = ["alloc"] [[bench]] name = "smallvec" harness = false required-features = ["alloc", "real_blackbox"]