2 个稳定版本

1.0.1 2023年11月25日

#6 in #继承


用于 agera

MIT/Apache

21KB
413 行代码(不含注释)

OOP继承

为Rust语言提供可子类化的灵活面向对象节点。请参阅API参考以获取详细信息。


lib.rs:

此crate通过节点提供面向对象继承。

一个节点由一组组件组成,节点可以拥有其他子节点。

定义类

使用class!调用定义类。

组件

use oop_inheritance::*;

let something = Node::new();

// Set a component
something.set::<f64>(10);

// `Option<Arc<f64>>`
something.get::<f64>();

子节点

something.add_child(&another_thing);

节点路径

由于节点具有层次结构,因此每个具有名称的节点都可以通过使用.resolve_path方法找到。然而,节点路径中存在一些特殊段无法通过名称解析,这在某些情况下可能很有用。

  • .first解析为节点的第一个子节点;
  • .last解析为节点的最后一个子节点;
  • ..解析为父节点。
let last_sibling: Option<Node> = node.resolve_path("../.last");

依赖关系

~305–760KB
~18K SLoC