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
//!
//! Type aliases for C API–compatible pointer types and semantic markers used by the extension API.
//!
use crate*;
/// Opaque pointer to an unspecified data type.
///
pub type FREHandle = *mut void;
/// Handle to user-defined data owned and managed by extensions.
///
pub type FREData = FREHandle;
/// Handle to an extension context managed by the runtime.
///
/// This is **NOT** the AS3 `ExtensionContext` object itself,
/// but a low-level handle associated with it.
///
pub type FREContext = FREHandle;
/// Handle to an AS3 object.
///
pub type FREObject = FREHandle;
/// Handle to a native window; the underlying type is platform-specific.
///
pub type FRENativeWindow = FREHandle;
/// Pointer to a byte buffer.
///
pub type FREBytes = *mut uint8_t;
/// Borrowed pointer to UTF-8 string.
///
/// This is a pointer to the beginning of the string buffer only.
/// Length and termination are determined by the API contract:
/// - If a length is provided alongside this pointer, the string is
/// interpreted as a byte slice of that length (not NUL-terminated).
/// - If no length is provided, the string is interpreted as NUL-terminated.
///
pub type FREStr = *const uint8_t;
/// 32-bit integer representation of an ActionScript `Boolean`.
///
/// A non-zero value represents `true`, and 0 represents `false`.
///
pub type FREBoolean = uint32_t;