generateLookup method

void generateLookup({
  1. required IOSink fileSink,
  2. required String owner,
  3. bool isStatic = false,
})

Generates necessary code for lookup functions for SteamMethod

Implementation

void generateLookup({
  required IOSink fileSink,
  required String owner,
  bool isStatic = false,
}) {
  fileSink.write("final _$friendlyName = dl.lookupFunction<");

  Token token = returnType.toToken();

  fileSink.write("${token.typeFfiC} Function(");

  if (!isStatic) {
    fileSink.write("Pointer<$owner>,");
  }

  params.generate(
    fileSink: fileSink,
    withFunctionC: true,
  );

  fileSink.write("),");

  fileSink.write("${token.typeFfiDart} Function(");
  if (!isStatic) {
    fileSink.write("Pointer<$owner>,");
  }

  params.generate(
    fileSink: fileSink,
    withFunctionDart: true,
  );

  fileSink.writeln(')>("$nameFlat");\n');
}