IRaw
IRaw is the Interface version of *anyopaque
zig
pub const IRaw = struct {
ptr: *anyopaque,
vptr: *anyopaque,
};
Convert to IRaw via asraw(), and then convert to any Interface via IRaw.cast(). No type information is used here, so the user must ensure the correctness of the conversion.
cast
zig
pub fn cast(self: IRaw, comptime I: type) I
Function: Force conversion to an interface of type I
parameter:
self
: source IRaw instanceI
: target type
Returns: An I
instance that directly copies self.ptr
and self.vptr
cast is equivalent to the following code
zig
pub fn cast(self: IRaw, comptime I: type) I {
return I{.ptr = self.ptr, .vptr = @ptrCast(@alignCast(self.vptr))};
}