我想在Rust中创建一个AttributeValue(由rusoto_dynamodb
库定义的类型),但是我无法从文档中找到如何实现这一点。
我是这么做的:
let mut my_map = HashMap::new();
my_map.insert(String::from("key1"), AttributeValue::from("value1"));
此错误,指向value1
并说:
AttributeValue::from("value1"));
^^^^^^^^ expected struct `AttributeValue`, found `&str`
我是Rust的新手,不理解这个错误信息,也不知道如何读取the docs。我想也许我想使用s
-但是怎么用呢?
1条答案
按热度按时间6jjcrrmo1#
AttributeValue
没有实现From<&str>
,也没有关联的from
函数,只实现了From<AttributeValue>
:这是一个“一揽子实现”-所有类型都实现
From<Self>
。因此,当您调用
AttributeValue::from
时,Rust假定参数必须是另一个AttributeValue
,并且当您给予它一个类似"value1"
的&str
时,它会抱怨。AttributeValue
的定义很糟糕,构造它有点麻烦:或者,您也可以通过
serde
:(我希望您可以使用
json!({"key1": "value1"})
,但是不行,AttributeValue
真的不好。)