Как вернуть объект 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.