#path #tree #immutability #structure #operations #clone

pathtree

用于快速路径操作的不变树数据结构

2个不稳定版本

0.1.0 2023年8月5日
0.0.0 2023年7月3日

#2124数据结构

BSD-3-Clause

9KB
164

Pathtree

用于快速路径操作的不变树数据结构。

PathTree易于克隆,并支持相互拼接路径。当树中的多个对象需要存储相对于根的路径时很有用。

用法

use pathtree::PathTree;


let path = PathTree::empty();
let path = path.append_segment(7);
let path = path.append_segment(5);
let path = path.prepend_segment(6);
let path = path.prepend_segment(8);

let path_vec: Vec<_> = path.iter().copied().collect();
assert_eq!(path_vec, vec![8, 6, 7, 5]);

let other_path = PathTree::empty();

let other_path = other_path.append_segment(2);
let other_path = other_path.prepend_segment(1);
let other_path = other_path.append_segment(3);
let other_path = other_path.prepend_segment(4);

let full_path = other_path.append(&path);
let full_path_vec: Vec<_> = full_path.iter().copied().collect();
assert_eq!(full_path_vec, vec![4, 1, 2, 3, 8, 6, 7, 5]);

lib.rs:

用于快速路径操作的不变树数据结构。

PathTree易于克隆,并支持相互拼接路径。当树中的多个对象需要存储相对于根的路径时很有用。

无运行时依赖