solar_data_structures/
lib.rs

1#![doc = include_str!("../README.md")]
2#![doc(
3    html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/solar/main/assets/logo.png",
4    html_favicon_url = "https://raw.githubusercontent.com/paradigmxyz/solar/main/assets/favicon.ico"
5)]
6#![cfg_attr(docsrs, feature(doc_cfg))]
7#![cfg_attr(feature = "nightly", feature(core_intrinsics))]
8#![cfg_attr(feature = "nightly", feature(never_type))]
9#![cfg_attr(feature = "nightly", feature(debug_closure_helpers))]
10#![cfg_attr(feature = "nightly", feature(rustc_attrs))]
11#![cfg_attr(feature = "nightly", feature(likely_unlikely))]
12#![cfg_attr(feature = "nightly", feature(extern_types))]
13#![cfg_attr(feature = "nightly", allow(internal_features))]
14
15pub mod cycle;
16pub mod fmt;
17pub mod hint;
18pub mod index;
19pub mod map;
20pub mod sync;
21pub mod trustme;
22
23mod bump_ext;
24pub use bump_ext::BumpExt;
25
26mod collect;
27pub use collect::CollectAndApply;
28
29mod never;
30pub use never::Never;
31
32mod drop_guard;
33pub use drop_guard::{DropGuard, defer};
34
35mod interned;
36pub use interned::Interned;
37
38mod thin_slice;
39pub use thin_slice::{RawThinSlice, ThinSlice};
40
41pub use smallvec;
42
43/// This calls the passed function while ensuring it won't be inlined into the caller.
44#[inline(never)]
45#[cold]
46pub fn outline<R>(f: impl FnOnce() -> R) -> R {
47    f()
48}