2个不稳定版本

使用旧的Rust 2015

0.1.0 2017年6月10日
0.0.1 2017年5月31日

#1655数据结构


用于 cognitive-exhibitor

MPL-2.0 许可证

180KB
3.5K SLoC

定义用于构建和操作表面之间空间和时间关系的数据结构和功能。

结构

帧以树形结构组织,有一个根节点。每个分支的子节点有两个顺序

  • 时间顺序 - 描述帧在给定分支中的使用顺序
  • 空间顺序 - 描述在屏幕上绘制的放置顺序

操作

在树中的基本操作是在空间顺序中追加前置连接帧。使用这些操作添加的帧始终成为时间顺序中的最后一个。要成为时间顺序中的第一个,必须执行弹出

扩展

通过特性首先实现基本功能的扩展,首先是为了清晰地分离功能,其次是为了通过将代码拆分到不同的模块来缩短文件长度。

  • searching - 提供更高级或常见的方法来查找指定的帧
  • settle - 实现添加或移动帧的常见方法

实现

帧树是循环图,每个节点可选地指向

  • 父节点
  • 时间顺序中的下一个兄弟节点
  • 时间顺序中的前一个兄弟节点
  • 时间顺序中的第一个子节点
  • 时间顺序中的最后一个子节点
  • 空间顺序中的下一个兄弟节点
  • 空间顺序中的前一个兄弟节点
  • 空间顺序中的第一个子节点
  • 空间顺序中的最后一个子节点

当前实现使用不安全的原始指针。这使实现比其他更习惯的方式更快、更简单,但失去了Rust的保证。运行时安全性由单元测试确保。

依赖关系

~9MB
~182K SLoC