submit method

Implementation

Future<ChatSubmitResult> submit(
  ChatSubmission submission,
  FutureOr<ChatSubmitResult> Function() admit,
) {
  final existing = _receipts[submission.id];
  if (existing != null) return existing;
  final completer = Completer<ChatSubmitResult>();
  _receipts[submission.id] = completer.future;
  // Register the receipt before invoking host code (which may reenter).
  Future.sync(
    admit,
  ).then(completer.complete, onError: completer.completeError);
  return completer.future;
}