abi_stable/
erased_types.rs1use std::{
4 cmp::{Eq, Ord, Ordering, PartialEq, PartialOrd},
5 fmt::{Debug, Display},
6 hash::{Hash, Hasher},
7};
8
9use serde::{Serialize, Serializer};
10
11use crate::{
12 std_types::{
13 RBoxError, RCmpOrdering, RErr, ROk, ROption, RResult, RSlice, RSliceMut, RStr, RString,
14 },
15 traits::{IntoReprC, IntoReprRust},
16};
17
18#[macro_use]
19mod enabled_traits_macro;
20
21pub(crate) mod c_functions;
22
23pub mod interfaces;
25
26pub mod trait_objects;
27
28pub(crate) mod type_info;
29
30pub(crate) mod iterator;
31
32pub(crate) mod dyn_trait;
33
34#[macro_use]
35pub(crate) mod vtable;
36
37pub(crate) mod traits;
38
39#[doc(inline)]
40pub use crate::DynTrait;
41
42pub use self::{
43 dyn_trait::UneraseError,
44 traits::{
45 DeserializeDyn, InterfaceType, IteratorItem, IteratorItemOrDefault, SerializeProxyType,
46 SerializeType,
47 },
48 type_info::TypeInfo,
49 vtable::{MakeRequiredTraits, RequiredTraits},
50};
51
52pub use self::vtable::MakeVTable;
53pub use self::vtable::VTable_Ref;
54
55#[doc(no_inline)]
56pub use crate::type_level::downcasting::{TD_CanDowncast, TD_Opaque};
57
58#[doc(hidden)]
66#[repr(u8)]
67#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, StableAbi)]
68pub enum FormattingMode {
69 Default_,
70 Alternate,
71}