4个版本 (破坏性更新)
0.12.0 | 2019年12月25日 |
---|---|
0.11.0 | 2019年3月24日 |
0.10.0 | 2017年6月3日 |
0.1.0 | 2017年4月23日 |
#209 在 #scripting-language
每月下载量 34
用于 3 个crate
22KB
357 代码行
ketos_derive
为使用Ketos时提供一系列自定义宏。
以下名称之一可以添加到任何结构体或枚举值的derive
属性中。例如
extern crate ketos;
#[derive(Clone, Debug, ForeignValue, FromValue, IntoValue)]
struct Foo {
// ...
}
derive(ForeignValue)
为给定类型实现ForeignValue
特性。此宏实现的唯一方法是type_name
。其他方法保留默认实现。
ForeignValue
特性必须实现(手动或使用此derive
),以便其他derive
实现能够成功。
derive(FromValue)
为给定类型实现FromValue
。
生成的实现要求Ketos Value
持有的类型的实例是唯一的,即所包含的Rc
的引用计数为1
。
如果您的类型实现了Clone
,则derive(FromValueClone)
将生成一个实现FromValue
的宏,该宏会克隆包含的值,如果需要的话。
derive(FromValueClone)
为给定的类型实现 FromValue
,前提是这个类型实现了 Clone
特性。
如果 Ketos Value
包含的值不唯一,结果将是包含值的副本。
derive(FromValueRef)
为给定的类型实现 FromValueRef
。
derive(IntoValue)
为给定的类型实现 Into<Value>
。
依赖项
~1.5MB
~35K SLoC