construct2 function

int construct2(
  1. String apiKey,
  2. String modelId,
  3. String? baseUrl,
  4. int plain(
    1. Pointer<Utf8>,
    2. Pointer<Utf8>,
    3. Pointer<AimuxCError>
    ),
  5. int withBase(
    1. Pointer<Utf8>,
    2. Pointer<Utf8>,
    3. Pointer<Utf8>,
    4. Pointer<AimuxCError>,
    ),
)

Shared constructor for (api_key, model_id[, base_url]) providers.

Implementation

int construct2(
  String apiKey,
  String modelId,
  String? baseUrl,
  int Function(Pointer<Utf8>, Pointer<Utf8>, Pointer<AimuxCError>) plain,
  int Function(
          Pointer<Utf8>, Pointer<Utf8>, Pointer<Utf8>, Pointer<AimuxCError>)
      withBase,
) {
  return withAimuxCError((err) {
    return withUtf8(apiKey, (keyPtr) {
      return withUtf8(modelId, (idPtr) {
        if (baseUrl == null) {
          return takeHandle(plain(keyPtr, idPtr, err), err);
        }
        return withUtf8(baseUrl, (basePtr) {
          return takeHandle(withBase(keyPtr, idPtr, basePtr, err), err);
        });
      });
    });
  });
}