DefaultAsset class

Annotation specifying the default asset ID for the current library.

The annotation applies only to library declarations.

The compiler and/or runtime provides a binding from asset ID to native library, which depends on the target platform and architecture. The compiler/runtime can resolve identifiers (symbols) against the native library, looking up native function implementations which are then used as the implementation of external Dart function declarations.

If used as annotation on a library declaration, all Native-annotated external functions in this library will use the specified asset id for native function resolution (unless overridden by Native.assetId).

If no DefaultAsset annotation is provided, the current library's URI is the default asset ID for Native-annotated external functions.

Example (file package:a/a.dart):

@Native<Int64 Function(Int64, Int64)>()
external int sum(int a, int b);

Example 2 (file package:a/a.dart):

@DefaultAsset('package:a/a.dart')
library a;

import 'dart:ffi';

@Native<Int64 Function(Int64, Int64)>()
external int sum(int a, int b);

The above two examples are equivalent.

Prefer using the library URI as asset name when possible.

NOTE: This is an experimental feature and may change in the future.

Annotations
  • @Since('2.19')

Constructors

DefaultAsset(String id)
const

Properties

hashCode int
The hash code for this object.
read-onlyinherited
id String
The default asset name for Native external functions in this library.
final
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited