1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
macro_rules! monomorphic_marker_type {
($name:ident, $field:ty) => {
#[allow(non_upper_case_globals)]
const _: () = {
monomorphic_marker_type! {@inner $name, $field}
};
};
(@inner $name:ident, $field:ty) => {
const _item_info_const_: abi_stable::type_layout::ItemInfo = abi_stable::make_item_info!();
const _SHARED_VARS_STRINGS_: ::abi_stable::std_types::RStr<'static> =
abi_stable::std_types::RStr::from_str("_marker;");
use ::abi_stable::derive_macro_reexports::{self as __sabi_re, renamed::*};
pub struct _static_(extern "C" fn());
unsafe impl __GetStaticEquivalent_ for $name {
type StaticEquivalent = _static_;
}
#[doc(hidden)]
pub(super) const _MONO_LAYOUT_: &'static __sabi_re::MonoTypeLayout =
&__sabi_re::MonoTypeLayout::from_derive(__sabi_re::_private_MonoTypeLayoutDerive {
name: abi_stable::std_types::RStr::from_str(stringify!($name)),
item_info: _item_info_const_,
data: __sabi_re::MonoTLData::derive_struct(__CompTLFields::new(
abi_stable::std_types::RSlice::from_slice(&[562949953880064u64]),
None,
)),
generics: abi_stable ::
tl_genparams !
(; __StartLen :: new(0u16, 0u16) ; __StartLen ::
new(0u16, 0u16)),
mod_refl_mode: __ModReflMode::Opaque,
repr_attr: __ReprAttr::C,
phantom_fields: abi_stable::std_types::RSlice::from_slice(&[]),
shared_vars: abi_stable::type_layout::MonoSharedVars::new(
_SHARED_VARS_STRINGS_,
abi_stable::std_types::RSlice::from_slice(&[]),
),
});
impl $name {
const __SABI_CONST_PARAMS_A: &'static [&'static __sabi_re::ConstGenericErasureHack<
dyn ::std::marker::Send,
>] = &[];
const __SABI_CONST_PARAMS_B: &'static [__ConstGeneric] = &[];
const __SABI_SHARED_VARS: &'static __sabi_re::SharedVars =
&abi_stable::type_layout::SharedVars::new(
_MONO_LAYOUT_.shared_vars_static(),
abi_stable::_sabi_type_layouts!($field,),
__sabi_re::RSlice::from_slice(Self::__SABI_CONST_PARAMS_B),
);
}
unsafe impl __sabi_re::StableAbi for $name {
type IsNonZeroType = __sabi_re::False;
const LAYOUT: &'static __sabi_re::TypeLayout = {
zst_assert! {Self}
&__sabi_re::TypeLayout::from_derive::<Self>(__sabi_re::_private_TypeLayoutDerive {
shared_vars: Self::__SABI_SHARED_VARS,
mono: _MONO_LAYOUT_,
abi_consts: Self::ABI_CONSTS,
data: __sabi_re::GenericTLData::Struct,
tag: None,
extra_checks: None,
})
};
}
};
}