Rust 装箱rusqlite行迭代器

Rust 装箱rusqlite行迭代器,rust,Rust,在使用prepare和query时,我无法确定如何返回迭代器(impl或Box) 以下是我尝试过的: fn foo Box>>{ 盒子:新的( 康涅狄格州 .准备(“从t中选择a、b”) .unwrap() .query(rusqlite::NO_参数) .unwrap() ) } 问题是,prepared语句是函数作用域拥有的临时变量。(error[E0515]:无法返回引用临时值的值。问题是,rusqlite::Rows引用您通过.prepare()创建的语句的生存时间,然后立即放弃。如果

在使用
prepare
query
时,我无法确定如何返回迭代器(
impl
Box

以下是我尝试过的:

fn foo Box>>{
盒子:新的(
康涅狄格州
.准备(“从t中选择a、b”)
.unwrap()
.query(rusqlite::NO_参数)
.unwrap()
)
}

问题是,prepared语句是函数作用域拥有的临时变量。(
error[E0515]:无法返回引用临时值的值。

问题是,rusqlite::Rows引用您通过
.prepare()
创建的语句的生存时间,然后立即放弃。如果只在同一个函数中处理查询行,但如果尝试返回查询行,则此操作不起作用。一种解决方案是在函数外部构造语句,并将其作为参数传入。如果其他任何人在有人提供合适的答案之前遇到这个问题,
sqlite
板条箱有一个很好的
sqlite::Cursor
类型,它很好包装,很容易提供和迭代器。