abi_stable/
std_types.rs

1//! Contains many ffi-safe equivalents of standard library types.
2//! The vast majority of them can be converted to and from std equivalents.
3//!
4//! For ffi-safe equivalents/wrappers of types outside the standard library go to
5//! the [external_types module](../external_types/index.html)
6
7pub(crate) mod arc;
8pub(crate) mod boxed;
9pub(crate) mod cmp_ordering;
10pub mod cow;
11pub mod map;
12pub(crate) mod option;
13pub(crate) mod range;
14pub(crate) mod result;
15pub(crate) mod slice_mut;
16pub(crate) mod slices;
17pub(crate) mod std_error;
18pub(crate) mod std_io;
19pub(crate) mod str;
20pub mod string;
21pub(crate) mod time;
22pub(crate) mod tuple;
23pub mod utypeid;
24pub mod vec;
25
26/// Some types from the `std::sync` module have ffi-safe equivalents in
27/// `abi_stable::external_types`.
28///
29/// The `sync::{Mutex,RwLock,Once}` equivalents are declared in
30/// `abi_stable::external_types::parking_lot`
31///
32/// The `mpsc` equivalents are declared in
33/// `abi_stable::external_types::crossbeam_channel`,
34/// this is enabled by default with the `channels`/`crossbeam-channel` cargo feature.
35pub mod sync {}
36
37#[doc(inline)]
38pub use self::{
39    arc::RArc,
40    boxed::RBox,
41    cmp_ordering::RCmpOrdering,
42    cow::{RCow, RCowSlice, RCowStr, RCowVal},
43    map::RHashMap,
44    option::{RNone, ROption, RSome},
45    result::{RErr, ROk, RResult},
46    slice_mut::RSliceMut,
47    slices::RSlice,
48    std_error::{RBoxError, RBoxError_, SendRBoxError, UnsyncRBoxError},
49    std_io::{RIoError, RIoErrorKind, RSeekFrom},
50    str::RStr,
51    string::RString,
52    time::RDuration,
53    tuple::{Tuple1, Tuple2, Tuple3, Tuple4},
54    utypeid::UTypeId,
55    vec::RVec,
56};