#![feature(prelude_import)]
#[prelude_import]
use std::prelude::rust_2021::*;
#[macro_use]
extern crate std;
use heapsz_derive::HeapSize;
#[allow(dead_code)]
#[path = "allowlisting.rs"]
mod allowlisting {
    use heapsz_derive::HeapSize;
    pub struct FullAllow {
        #[heap_size]
        pub field_bool: bool,
        #[heap_size]
        pub field_u8: u8,
        #[heap_size]
        pub field_u16: u16,
        #[heap_size]
        pub field_u32: u32,
        #[heap_size]
        pub field_u64: u64,
        #[heap_size]
        pub field_u128: u128,
        #[heap_size]
        pub field_usize: usize,
        #[heap_size]
        pub field_f32: f32,
        #[heap_size]
        pub field_f64: f64,
    }
    impl ::heapsz::HeapSize for FullAllow {
        fn heap_size(&self) -> usize {
            0 + ::heapsz::HeapSize::heap_size(&self.field_bool)
                + ::heapsz::HeapSize::heap_size(&self.field_u8)
                + ::heapsz::HeapSize::heap_size(&self.field_u16)
                + ::heapsz::HeapSize::heap_size(&self.field_u32)
                + ::heapsz::HeapSize::heap_size(&self.field_u64)
                + ::heapsz::HeapSize::heap_size(&self.field_u128)
                + ::heapsz::HeapSize::heap_size(&self.field_usize)
                + ::heapsz::HeapSize::heap_size(&self.field_f32)
                + ::heapsz::HeapSize::heap_size(&self.field_f64)
        }
    }
    pub struct PartialAllow {
        #[heap_size]
        pub field_bool: bool,
        #[heap_size]
        pub field_u8: u8,
        #[heap_size]
        pub field_u16: u16,
        #[heap_size]
        pub field_u32: u32,
        #[heap_size]
        pub field_u64: u64,
        pub field_u128: u128,
        pub field_usize: usize,
        pub field_f32: f32,
        pub field_f64: f64,
    }
    impl ::heapsz::HeapSize for PartialAllow {
        fn heap_size(&self) -> usize {
            0 + ::heapsz::HeapSize::heap_size(&self.field_bool)
                + ::heapsz::HeapSize::heap_size(&self.field_u8)
                + ::heapsz::HeapSize::heap_size(&self.field_u16)
                + ::heapsz::HeapSize::heap_size(&self.field_u32)
                + ::heapsz::HeapSize::heap_size(&self.field_u64)
        }
    }
    fn main() {}
}
pub struct Unit;
impl ::heapsz::HeapSize for Unit {
    fn heap_size(&self) -> usize {
        0
    }
}
pub struct Tuple1(#[heap_size] pub allowlisting::FullAllow);
impl ::heapsz::HeapSize for Tuple1 {
    fn heap_size(&self) -> usize {
        0 + ::heapsz::HeapSize::heap_size(&self.0)
    }
}
#[heap_size]
pub struct Tuple2(
    pub allowlisting::FullAllow,
    #[heap_size(skip)]
    pub allowlisting::PartialAllow,
);
impl ::heapsz::HeapSize for Tuple2 {
    fn heap_size(&self) -> usize {
        0 + ::heapsz::HeapSize::heap_size(&self.0)
    }
}
fn main() {}