overrider
is a set of Rust crates that provide overloading of functions, methods, and more. For example:
```rust // main.rs use overrider::*;
fn foo() { println!("Hello World"); } ```
Calling foo()
will print Hello World
. However, if an override_default
version
of foo
is defined:
```rust // main.rs use overrider::*;
fn foo() { println!("Hello World"); }
fn foo() { println!("Hello Za Warudo"); } ```
Calling foo()
will now print Hello Za Warudo
. The first function definition may remain.
Due to limitations in proc_macro
, overrider
requires the use of two crates:
- overrider
for code in src
- overrider_build
for a build script such as build.rs
The code from above shows how to use the overrider
crate.
Below is how to use the build portion:
```rust
// build.rs
use overriderbuild::watchfiles;
fn main() {
watch_files!("src/main.rs");
}
```
For examples, see the git repo.