【发布时间】:2022-11-27 03:17:54
【问题描述】:
我是 Rust 的新手,并且真的在努力寻找以 Rust 方式编写代码的方法。我了解其强制执行内存正确性的规则,但是我无法弄清楚遵守代码所需的更改。
我从应用程序收到的 json 结构中创建了一个类似树的对象。
我正在尝试在树上创建两个操作,
- 获取树的叶子
- 获取地图中父->子的映射
高级代码看起来像这样
fn rename_workspaces(conn: Connection) { let i3_info = I3Info::new(conn); let _leaves = i3_info.get_leaves(); let _parent_child = i3_info.dfs_parent_child(); }但是,rust 抱怨在移动后使用了 i3_info 变量。我理解它的抱怨,但是,我无法弄清楚解决它的正确 Rust 方法应该是什么。
请帮我弄清楚解决这个问题所需的思维转变。这很重要,因为我的应用程序确实需要多次对树结构执行这些计算。
有趣的是,我并没有真正改变结构,只是迭代它并从函数返回新的/改变的结构。
来源链接:https://github.com/madhur/i3-auto-workspace-icons-rust/blob/main/src/main.rs
【问题讨论】:
标签: rust rust-cargo i3