Как вернуть объект Hash/Raku из собственного вызова?

Я пишу библиотеку, которая используетNativeCall, мне было бы очень удобно иметь возможность возвращать Раку из экспортированной функции. Как я могу это сделать?

Например, в Ruby, если я хочу вернутьHashиз C я бы сделал что-то вроде:

      #include "ruby.h"

VALUE make_hash() {
    VALUE hash = rb_hash_new();
    return hash;
}

Мне интересно посмотреть, можно ли это сделать, я подумал, что, возможно, мне нужно будет использовать заголовок MoarVM или что-то в этом роде. Но я не уверен.

То, что я пытаюсь сделать, это написать функцию C, которая принимает String, делает некоторые вещи, а затем возвращает хэш Raku.

1 ответ

Как кто-то предложил, это лучше всего сделать с помощью функции-оболочки. Прежде всего, какое значение вы возвращаете из C?

Лучше всего вернуть CStruct.

Другие вопросы по тегам