borrow-checker

    1热度

    1回答

    我有以下代码: pub type Blockchain<T> = Vec<Block<T>>; pub fn blockchain() -> Blockchain<String> { let size = 10; let mut chain: Blockchain<String> = Vec::with_capacity(size); chain.push(Blo

    0热度

    1回答

    我对结构有一个可变引用,我想通过传递一个函数来更改它的一个字段,并将结果设置为该字段的新值。但是,我收到“无法移出借来的内容”编译错误。 这是证明我的问题,一个简约的例子: struct InnerStruct { num: usize, } struct MyStruct { inner_struct: InnerStruct, } fn do_something

    2热度

    2回答

    是否有可能借用结构的部分作为可变的,而另一部分是不可变的 - 如果结构的字段是私有的。 fn main() { let mut ecs = EntityComponentSystem::new(); for e_id in ecs.get_entities_with_component::<Velocity>().unwrap() { let component

    -2热度

    2回答

    所以我们的目标是编写一个获取两条路径的函数,input_dir和output_dir,并将所有降价文件从input_dir转换为output_dir中的html文件。 我终于设法让它运行,但它非常令人沮丧。应该很难的部分非常容易:从Markdown到HTML的实际转换实际上只有一行。看似简单的部分是我花了最长的时间。使用路径矢量并将所有文件放入它中,我用glob箱替换了它。不是因为我无法工作,而是

    2热度

    1回答

    我有一个Git仓库隐藏在Mutex背后: pub struct GitRepo { contents: Mutex<GitContents>, workdir: PathBuf, } 我想查询,但最多只有一次:它被质疑之后,我只想用我们第一时间拿到了结果。存储库具有git2::Repository或结果向量。 A Repository是Send但不是Sync。 enum

    3热度

    2回答

    我有一个Element s的数组,我想遍历它做一些事情,然后遍历循环内的所有Element做些事情。元素之间有一个关系,所以我想遍历所有其他元素来检查一些东西。这些元素是可变参考的原因。这有点宽泛,但我试图成为一般(也许我不应该)。 struct Element; impl Element { fn doSomething(&self, e: &Element) {} } fn

    0热度

    1回答

    我刚开始学习Rust并通过Rust书进行工作。其中一章通过几个例子,并以“尝试进行这种通用”类型的建议练习结束。我一直对此感到震惊。你开始的半通用型是这样的:“值” struct Cacher<T> where T: Fn(i32) -> i32 { value: Option<i32>, // leaving out rest for brevity 然后我去

    1热度

    2回答

    我正在尝试写一个chip8模拟器,并且借用检查器给我一个很难的时间。 的想法是通过寻找一个方法指针HashMap内,然后执行该方法指针解码的操作码,但我不能得到可变方法指针正常工作:采用指针 struct Chip8 { opcode: u16, //... other fields jump_table: HashMap<u16, Box<fn(&mut Chip8

    2热度

    1回答

    我想返回城市/城镇/村庄的名称作为参考str。我可以在实现中指定生命周期,但也可以为枚举指定错误,因为它没有声明引用。 enum CityType { City { name: String /* ... */ }, Town { name: String /* ... */ }, Village { name: String /* ... */ }, } im

    1热度

    1回答

    我试图在循环中获得可变借入,并且我无法使其工作。我已经尝试了所有可能的卫兵,生鱼指针,一切。 struct Test<'a> { a: &'a str, } impl<'a> Test<'a> { pub fn new() -> Self { Test { a: &mut "test" } } pub fn dostuff(&'a mut