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]
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^
This returns a null pointer typed as a MaybePointer[A].
new ref none() : MaybePointer[A] ref^
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 true if this
is null (ie apply would raise an error).
fun box is_none() : Bool val
© 2016-2018, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/builtin-MaybePointer