#继承 # #OOP #面向对象 #节点 #self #f64

nightly macro oop_inheritance_proc

面向对象继承

1个稳定版本

1.0.0 2023年11月25日

#18 in #继承


2 个crate中使用了(通过 oop_inheritance

MIT/Apache

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