3个不稳定版本
0.2.0 | 2021年10月27日 |
---|---|
0.1.1 | 2021年10月15日 |
0.1.0 | 2021年10月14日 |
#55 in #cassandra
17KB
224 代码行
stargate-grpc的派生宏
此crate提供以下派生宏
IntoValue
– 允许将Rust结构转换为用户定义的CQL类型的Value
;当您想在查询中绑定单个UDT字段时使用此宏TryFromValue
– 允许将表示用户定义的CQL类型的Value
转换为Rust结构;当您想从行中读取单个UDT列值时使用此宏IntoValues
– 允许一次将Rust结构转换为查询的多个参数;如果您想在单个bind
调用中绑定单个Rust结构中的多个字段,则使用此宏
使用此宏TryFromRow
– 允许将结果集中接收到的Row
转换为Rust值
示例
use stargate_grpc::Value;
use stargate_grpc_derive::{IntoValue, TryFromValue};
#[derive(IntoValue, TryFromValue)]
struct User {
id: i64,
login: String
}
let user = User { id: 1, login: "user".to_string() };
// Convert User to Value:
let value = Value::from(user);
assert_eq!(value, Value::udt(vec![("id", Value::bigint(1)), ("login", Value::string("user"))]));
// Now convert it back to User:
let user: User = value.try_into().unwrap();
assert_eq!(user.id, 1);
assert_eq!(user.login, "user".to_string());
请参阅crate文档以获取更多示例。
依赖项
~1.5–3MB
~57K SLoC