ffi_utils 0.3.0 ffi_utils: ^0.3.0 copied to clipboard
FFI Utils
import 'dart:ffi';
import 'dart:typed_data';
import 'package:ffi_utils/ffi_utils.dart';
void main() {
var nativeString = NativeString.fromString('test');
assert(nativeString.toDartString() == 'test', nativeString.toString());
var bytes = nativeString.cast<Uint8>().asTypedList(5).toList();
assert(_eq(bytes, [116, 101, 115, 116, 0]));
var buffer = NativeBuffer.fromBytes([116, 101, 115, 116, 0]);
bytes = buffer.cast<Uint8>().asTypedList(5).toList();
assert(_eq(bytes, [116, 101, 115, 116, 0]));
buffer = NativeBuffer.fromTyped(Uint8List.fromList([116, 101, 115, 116, 0]));
bytes = buffer.cast<Uint8>().asTypedList(5).toList();
assert(_eq(bytes, [116, 101, 115, 116, 0]));
var string = NativeString.fromPointer(buffer);
assert(string == 'test');
}
bool _eq(List a, List b) {
int i = -1;
return a.length == b.length &&
a.every((e) { i++; return e == b[i];});
}