Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将yaml rust枚举存储到结构的实例中?_Rust_Yaml - Fatal编程技术网

如何将yaml rust枚举存储到结构的实例中?

如何将yaml rust枚举存储到结构的实例中?,rust,yaml,Rust,Yaml,我试图定义一个结构,该结构具有来自的Yaml类型,但它不起作用。在这种情况下,我应该在结构中使用什么数据类型 extern crate yaml_rust; use yaml_rust::{Yaml, YamlLoader}; struct Book { doc: Yaml, } fn main() { let s = " foo: - list1 - list2 "; let docs = YamlLoader::load_from_str(s).

我试图定义一个结构,该结构具有来自的
Yaml
类型,但它不起作用。在这种情况下,我应该在结构中使用什么数据类型

extern crate yaml_rust;

use yaml_rust::{Yaml, YamlLoader};

struct Book {
    doc: Yaml,
}

fn main() {
    let s = "
foo:
    - list1
    - list2
";
    let docs = YamlLoader::load_from_str(s).unwrap();
    let doc = &docs[0];
    let _book = Book { doc: doc };
}
错误[E0308]:类型不匹配
-->src/main.rs:17:29
|
17 |让_book=book{doc:doc};
|^^^应为枚举'yaml_rust::yaml',找到引用
|
=注:预期类型为'yaml_rust::yaml`
找到类型“%yaml\u rust::yaml`

重新读取错误消息:

应为'yaml_rust::yaml'类型`
找到类型“%yaml\u rust::yaml`
您没有
Yaml
的实例;您拥有对实例的引用。回顾一下,特别是关于

您可以从
docs
向量中删除该值,并将其传递到结构中:

let mut docs = YamlLoader::load_from_str(s).unwrap();
let doc = docs.swap_remove(0);
let _book = Book { doc };