#[repr(C)]pub struct BSExtraData {
pub vtbl: *const BSExtraDataVtbl,
pub next: *mut BSExtraData,
/* private fields */
}
Expand description
Represents the base structure for extra data nodes in a singly linked list.
Fields§
§vtbl: *const BSExtraDataVtbl
Pointer to the virtual function table (vtable).
next: *mut BSExtraData
Pointer to the next BSExtraData
node.
This is a raw pointer to ensure FFI compatibility. Option<NonNull<T>>
would be safer, but raw pointers are required for interoperability.
§Note
This is assumed to be a heap-derived unique pointer created from Box::into_raw
, etc.
If this process is broken, UB happens.
Implementations§
Source§impl BSExtraData
impl BSExtraData
Sourcepub const VTABLE: [VariantID; 1] = VTABLE_BSExtraData
pub const VTABLE: [VariantID; 1] = VTABLE_BSExtraData
Address & offset of Virtual function table.
Sourcepub const EXTRA_DATA_TYPE: ExtraDataType = ExtraDataType::None
pub const EXTRA_DATA_TYPE: ExtraDataType = ExtraDataType::None
Default extra data type (None).
Sourcepub fn get_type(&self) -> ExtraDataType
pub fn get_type(&self) -> ExtraDataType
Get the extra data type by invoking the GetType
virtual function.
Sourcepub fn is_not_equal(&self, rhs: &Self) -> bool
pub fn is_not_equal(&self, rhs: &Self) -> bool
Compares two BSExtraData
instances for inequality.
Sourcepub fn create<T: CxxVirtClass>() -> Option<NonNull<T>>
pub fn create<T: CxxVirtClass>() -> Option<NonNull<T>>
Creates a new instance of T
that implements CxxVirtClass
.
Returns an Option<NonNull<T>>
containing a pointer to the allocated instance, or None
on failure.
Trait Implementations§
Source§impl CxxVirtClass for BSExtraData
impl CxxVirtClass for BSExtraData
Source§impl Debug for BSExtraData
impl Debug for BSExtraData
Source§impl Default for BSExtraData
impl Default for BSExtraData
Source§impl DerivedBSExtraData for BSExtraData
impl DerivedBSExtraData for BSExtraData
Source§fn get_extra_data(&self) -> &BSExtraData
fn get_extra_data(&self) -> &BSExtraData
Source§fn get_extra_data_type() -> ExtraDataType
fn get_extra_data_type() -> ExtraDataType
BSExtraData
is really inherited. It will not be called in practice.