MaybePointer[A: A]

A MaybePointer[A] is used to encode a possibly-null type. It should only be used for structs that need to be passed to and from the C FFI.

An optional type for anything that isn't a struct should be encoded as a union type, for example (A | None).

struct ref MaybePointer[A: A]

Constructors

create

This re-encodes the type of that from A to MaybePointer[A], allowing that to be assigned to a field or variable of type MaybePointer[A]. It doesn't allocate a wrapper object: there is no containing object for that.

new ref create(
  that: A)
: MaybePointer[A] ref^

Parameters

  • that: A

Returns


none

This returns a null pointer typed as a MaybePointer[A].

new ref none()
: MaybePointer[A] ref^

Returns


Public Functions

apply

This re-encodes the type of this from MaybePointer[A] to A, allowing this to be assigned to a field of variable of type A. If this is a null pointer, an error is raised.

fun box apply()
: this->A ?

Returns

  • this->A ?

is_none

Returns true if this is null (ie apply would raise an error).

fun box is_none()
: Bool val

Returns