#tree #traits #kinds #abstract #reasons #handy

no-std treelike

一个抽象树结构特性和简化实现它们的方便的 crate

2 个不稳定版本

0.2.0 2019年7月20日
0.1.0 2019年6月29日

#1975数据结构

Apache-2.0

28KB
553

Treelike

此 crate 尝试为所有类型的树提供一种通用的特性。有两个原因

互操作性

使用通用特性允许第三方无缝切换树实现。它还允许在树上构建进一步的抽象。

自动化

如果您正在实现树,Treelike 只要求您在您的节点上实现两个方法,content 用于返回其内容,以及 children 用于列出其子节点。

然后免费提供许多遍历和搜索方法。我发现自己不断地在不同的树上实现相同的方法,因此这是我的主要动机。

no_std

此 crate 尝试保持与 no_std 兼容,但如果可用分配,则提供更多功能。相关的类型和方法包含一个 no_std 部分,用于讨论功能和限制。

贡献

请将钩子符号链接到您的本地 .git/hooks/ 目录,以便在提交之前运行一些自动检查。

ln -s ../../hooks/pre-commit .git/hooks/

请安装 rustfmt 和 cargo-sync-readme,以便运行这些检查。

rustup component add rustfmt
cargo install cargo-sync-readme

当您更改顶级文档时,请执行 cargo-sync-readme。每次更改代码时,请运行 cargo fmt。如果可能,请配置您的编辑器为您执行此操作。

无运行时依赖

功能