Union class Null safety
The supertype of all FFI union types.
FFI union types should extend this class and declare fields corresponding to the underlying native union.
Field declarations in a Union subclass declaration are automatically given a setter and getter implementation which accesses the native union's field in memory.
All field declarations in a Union subclass declaration must either have type int or double and be annotated with a NativeType representing the native type, or must be of type Pointer. For example:
typedef union {
int a;
float b;
void* c;
} my_union;
class MyUnion extends Union {
@Int32()
external int a;
@Float()
external double b;
external Pointer<Void> c;
}
All field declarations in a Union subclass declaration must be marked
external. You cannot create instances of the class, only have it point to
existing native memory, so there is no memory in which to store non-native
fields. External fields also cannot be initialized by constructors since no
Dart object is being created.
Instances of a subclass of Union have reference semantics and are backed by native memory. The may allocated via allocation or loaded from a Pointer, but cannot be created by a generative constructor.
- Inheritance
-
- Object
- NativeType
- Union
- Annotations
-
- @Since('2.14')
Constructors
Properties
- hashCode → int
-
The hash code for this object.
read-onlyinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited