pit_basic/buffer64/
ffi.rs

1pub trait R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d {
2    fn read8(&mut self, p0: u64) -> (u32);
3    fn size(&mut self) -> (u64);
4    fn write8(&mut self, p0: u64, p1: u32) -> ();
5}
6const _: () = {
7    #[link_section = ".pit-types"]
8    static SECTION_CONTENT: [u8; 60usize] = [
9        123u8,
10        114u8,
11        101u8,
12        97u8,
13        100u8,
14        56u8,
15        40u8,
16        73u8,
17        54u8,
18        52u8,
19        41u8,
20        32u8,
21        45u8,
22        62u8,
23        32u8,
24        40u8,
25        73u8,
26        51u8,
27        50u8,
28        41u8,
29        59u8,
30        115u8,
31        105u8,
32        122u8,
33        101u8,
34        40u8,
35        41u8,
36        32u8,
37        45u8,
38        62u8,
39        32u8,
40        40u8,
41        73u8,
42        54u8,
43        52u8,
44        41u8,
45        59u8,
46        119u8,
47        114u8,
48        105u8,
49        116u8,
50        101u8,
51        56u8,
52        40u8,
53        73u8,
54        54u8,
55        52u8,
56        44u8,
57        73u8,
58        51u8,
59        50u8,
60        41u8,
61        32u8,
62        45u8,
63        62u8,
64        32u8,
65        40u8,
66        41u8,
67        125u8,
68        0u8,
69    ];
70    fn alloc<T>(m: &mut ::std::collections::BTreeMap<u32, T>, x: T) -> u32 {
71        let mut u = 0;
72        while m.contains_key(&u) {
73            u += 1;
74        }
75        m.insert(u, x);
76        return u;
77    }
78    #[derive(Default)]
79    struct TableCell {
80        all: std::cell::UnsafeCell<
81            ::std::collections::BTreeMap<
82                u32,
83                Box<
84                    dyn R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d,
85                >,
86            >,
87        >,
88    }
89    unsafe impl Send for TableCell {}
90    unsafe impl Sync for TableCell {}
91    static TABLE: ::std::sync::LazyLock<TableCell> = ::std::sync::LazyLock::new(|| TableCell::default());
92    impl R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d
93    for ::tpit_rt::Tpit<
94        Box<dyn R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d>,
95    > {
96        fn read8(&mut self, p0: u64) -> (u32) {
97            #[link(
98                wasm_import_module = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d"
99            )]
100            extern "C" {
101                #[link_name = "read8"]
102                fn go(this: u32, p0: u64) -> (u32);
103            }
104            return unsafe { go(self.ptr(), p0) };
105        }
106        fn size(&mut self) -> (u64) {
107            #[link(
108                wasm_import_module = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d"
109            )]
110            extern "C" {
111                #[link_name = "size"]
112                fn go(this: u32) -> (u64);
113            }
114            return unsafe { go(self.ptr()) };
115        }
116        fn write8(&mut self, p0: u64, p1: u32) -> () {
117            #[link(
118                wasm_import_module = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d"
119            )]
120            extern "C" {
121                #[link_name = "write8"]
122                fn go(this: u32, p0: u64, p1: u32) -> ();
123            }
124            return unsafe { go(self.ptr(), p0, p1) };
125        }
126    }
127    #[export_name = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d/~b3435bc747738a8874da05bf54d1e6b7c57bbab9ef27b0d40a5db3c3c8b6e5b9.drop"]
128    extern "C" fn _drop(a: u32) {
129        unsafe { (&mut *(TABLE.all.get())).remove(&a) };
130    }
131    #[export_name = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d/~b3435bc747738a8874da05bf54d1e6b7c57bbab9ef27b0d40a5db3c3c8b6e5b9/read8"]
132    extern "C" fn read8(id: u32, p0: u64) -> (u32) {
133        return unsafe { &mut *(TABLE.all.get()) }.get_mut(&id).unwrap().read8(p0);
134    }
135    #[export_name = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d/~b3435bc747738a8874da05bf54d1e6b7c57bbab9ef27b0d40a5db3c3c8b6e5b9/size"]
136    extern "C" fn size(id: u32) -> (u64) {
137        return unsafe { &mut *(TABLE.all.get()) }.get_mut(&id).unwrap().size();
138    }
139    #[export_name = "tpit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d/~b3435bc747738a8874da05bf54d1e6b7c57bbab9ef27b0d40a5db3c3c8b6e5b9/write8"]
140    extern "C" fn write8(id: u32, p0: u64, p1: u32) -> () {
141        return unsafe { &mut *(TABLE.all.get()) }.get_mut(&id).unwrap().write8(p0, p1);
142    }
143    impl From<Box<dyn R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d>>
144    for ::tpit_rt::Tpit<
145        Box<dyn R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d>,
146    > {
147        fn from(
148            a: Box<dyn R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d>,
149        ) -> Self {
150            #[link(
151                wasm_import_module = "pit/68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d"
152            )]
153            extern "C" {
154                #[link_name = "~b3435bc747738a8874da05bf54d1e6b7c57bbab9ef27b0d40a5db3c3c8b6e5b9"]
155                fn _push(
156                    a: u32,
157                ) -> ::tpit_rt::Tpit<
158                    Box<
159                        dyn R68da167712ddf1601aed7908c99972e62a41bdea1e28b241306a6b58d29e532d,
160                    >,
161                >;
162            }
163            return unsafe { _push(alloc(&mut *(TABLE.all.get()), a)) };
164        }
165    }
166};