fp_bindgen_support/common/
async.rs

1use super::mem::{to_fat_ptr, FatPtr};
2
3pub const FUTURE_STATUS_PENDING: u32 = 0;
4pub const FUTURE_STATUS_READY: u32 = 1;
5
6#[doc(hidden)]
7#[repr(C)]
8#[derive(Clone, Copy, Debug)]
9pub struct AsyncValue {
10    pub status: u32,
11    pub ptr: u32,
12    pub len: u32,
13}
14
15impl AsyncValue {
16    pub fn new() -> Self {
17        Self {
18            status: FUTURE_STATUS_PENDING,
19            ptr: 0,
20            len: 0,
21        }
22    }
23
24    pub fn buffer_ptr(&self) -> FatPtr {
25        to_fat_ptr(self.ptr as *const u8, self.len)
26    }
27}
28
29impl Default for AsyncValue {
30    fn default() -> Self {
31        Self::new()
32    }
33}