|  | // Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | // @dart=3.5 | 
|  |  | 
|  | import 'dart:ffi'; | 
|  |  | 
|  | void main() { | 
|  | // This should create a `_Compound` with the right offset. | 
|  | final myStruct = Struct.create<MyStruct>(); | 
|  | myNative( | 
|  | myStruct.a.address, | 
|  | myStruct.b.address, | 
|  | ); | 
|  |  | 
|  | // Unions do not need to create a view with an offset. | 
|  | final myUnion = Union.create<MyUnion>(); | 
|  | myNative( | 
|  | myUnion.a.address, | 
|  | myUnion.b.address, | 
|  | ); | 
|  |  | 
|  | // This should create a `_Compound` with the right offset. | 
|  | myNative( | 
|  | myStruct.array[3].address, | 
|  | myStruct.array[4].address, | 
|  | ); | 
|  |  | 
|  | // This should create a `_Compound` with the right offset. | 
|  | myNative( | 
|  | myStruct.array2[3].address, | 
|  | myStruct.array2[4].address, | 
|  | ); | 
|  | } | 
|  |  | 
|  | @Native< | 
|  | Void Function( | 
|  | Pointer<Int8>, | 
|  | Pointer<Int8>, | 
|  | )>(isLeaf: true) | 
|  | external void myNative( | 
|  | Pointer<Int8> pointer, | 
|  | Pointer<Int8> pointer2, | 
|  | ); | 
|  |  | 
|  | final class MyStruct extends Struct { | 
|  | @Int8() | 
|  | external int a; | 
|  |  | 
|  | @Int8() | 
|  | external int b; | 
|  |  | 
|  | @Array(10) | 
|  | external Array<Int8> array; | 
|  |  | 
|  | @Array(10) | 
|  | external Array<UnsignedLong> array2; | 
|  | } | 
|  |  | 
|  | final class MyUnion extends Union { | 
|  | @Int8() | 
|  | external int a; | 
|  |  | 
|  | @Int8() | 
|  | external int b; | 
|  | } |