1个稳定版本
1.0.0 | 2023年11月25日 |
---|
#18 in #继承
在 2 个crate中使用了(通过 oop_inheritance)
18KB
319 行
Rust的面向对象继承
该 oop_inheritance
crate 提供了一个灵活的 Node 类,可以被继承。由于 Rust 语言本身不支持结构继承,因此实现了这个 crate。
示例
use oop_inheritance::{Node, class};
class! {
struct C0: Node {
// fn x() -> f64
// fn set_x(x: f64) -> Self
x: f64 = 0.0,
// fn x() -> Arc<f64>
// fn set_x(x: Arc<f64>) -> Self
ref y: f64 = 0.0,
}
// C0::new()
fn constructor() {
super();
}
}
class! {
struct C1: C0 < Node {}
fn constructor() {
super();
}
}
class! {
struct C2: C1 < C0 < Node {}
fn constructor() {
super();
}
}
依赖项
~285–740KB
~18K SLoC