Skip to content

seppo0010/kwargs-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kwargs-rs

An experiment to have named optional arguments in Rust.

Example

#[macro_use(def, call)] extern crate kwargs;

def!(test(v1: u8, v2: u8; operation:u8=1, reverse:bool=false) -> bool {
    reverse != match operation {
        1 => v1 == v2,
        2 => v1 != v2,
        3 => v1 > v2,
        4 => v1 < v2,
        _ => false,
    }
});

fn main() {
    assert!(call!(test(0, 0)));
    assert!(!call!(test(0, 1)));
    assert!(call!(test(0, 1; operation=2)));
    assert!(!call!(test(0, 1; operation=2, reverse=true)));
}

About

An experiment to have named optional arguments in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages