#override #final #proc-macro #overload

overrider

覆盖函数、方法和更多功能

8 个版本 (4 个破坏性更新)

0.7.0 2020 年 7 月 21 日
0.6.1 2020 年 6 月 8 日
0.5.1 2020 年 6 月 7 日
0.4.0 2020 年 6 月 1 日
0.3.2 2020 年 5 月 28 日

开发工具 中排名 1589

每月下载量 30

GPL-2.0+

26KB
452

overrider-rs

overrider 是一组 Rust Crates,提供函数、方法和更多的重载功能。例如

// main.rs
use overrider::*;
#[default]
fn foo() {
    println!("Hello World");
}

调用 foo() 将打印 Hello World。然而,如果定义了一个 override_default 版本的 foo

// main.rs
use overrider::*;
#[default]
fn foo() {
    println!("Hello World");
}

#[override_default]
fn foo() {
    println!("Hello Za Warudo");
}

调用 foo() 现在将打印 Hello Za Warudo。第一个函数定义可能仍然保留。

使用方法

由于 proc_macro 的限制,overrider 需要使用两个 Crates

  • overrider 用于 src 中的代码
  • overrider_build 用于构建脚本,如 build.rs 上面的代码展示了如何使用 overrider Crates。下面是如何使用构建部分
// build.rs
use overrider_build::watch_files;
fn main() {
    watch_files!("src/main.rs");
}

有关示例,请参阅 Git 仓库

依赖项

~1.5MB
~34K SLoC