overrider_build

The build dependency to overrider


Keywords
proc_macro, override, overload, final
License
GPL-2.0+

Documentation

overrider-rs

overrider is a set of Rust crates that provide overloading of functions, methods, and more. For example:

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

Calling foo() will print Hello World. However, if an override_default version of foo is defined:

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

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

Calling foo() will now print Hello Za Warudo. The first function definition may remain.

Using

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:
// build.rs
use overrider_build::watch_files;
fn main() {
    watch_files!("src/main.rs");
}

For examples, see the git repo.