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
// Only used by non-unit zero-sized types
//
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,
                })
            };
        }
    };
}