问题描述
我有ruby代码,它通过FFI gem将结构传递给本地Rust库。
结构包含一个字符串字段。我需要能够在Ruby端指定字符串。
class MyStruct < FFI::Struct
layout :s1,:string,:field2,:uint32,# other fields
我已经尝试过了:
def initialize(ruby_str)
self[:s1] = ruby_str
# [.......]
并且已经得到了:
`[]=': Cannot set :string fields (ArgumentError)
这会打击细分错误:
def initialize(ruby_str)
p1 = FFI::MemoryPointer.from_string(ruby_str)
self[:content] = p1
self[:len] = ruby_str.length
我已经阅读了有关此问题的信息,但没有找到明确的解决方案,也没有示例。我需要至少能够从Ruby传递字符串字段 (一种方式)。
此外,还将从 本地Rust库(不是NULL终止,但长度在单独的字段中指定)接收的字符串转换为Ruby字符串。
那怎么办呢?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)