#ternary #operator #inline #if

ternop

A tiny macro that implements a ternary operator for Rust

1 stable release

Uses old Rust 2015

1.0.1 Dec 2, 2017

#7 in #if

Download history 261/week @ 2024-11-16 877/week @ 2024-11-23 508/week @ 2024-11-30 668/week @ 2024-12-07 600/week @ 2024-12-14 107/week @ 2024-12-21 219/week @ 2024-12-28 147/week @ 2025-01-04 272/week @ 2025-01-11 323/week @ 2025-01-18 428/week @ 2025-01-25 519/week @ 2025-02-01 414/week @ 2025-02-08 383/week @ 2025-02-15 363/week @ 2025-02-22 232/week @ 2025-03-01

1,445 downloads per month
Used in 6 crates (via mailin)

MIT/X11 license

3KB

Ternary Operator

Rust doesn't support return (condition) ? if_true : if_false;. This crate exports a macro that implements this feature.

fn is_ipv4(val: &str) -> i32 {
    ternary!(val == "ipv4", 4, 16)
}

If you just want to copy the small macro, here you go 😅

#[macro_export]
macro_rules! ternary {
    ($condition: expr, $_true: expr, $_false: expr) => {
        if $condition { $_true } else { $_false }
    };
}

lib.rs:

A dead simple ternary operator macro which allows you to write quick one-line returnes for a variety of types.

Examples

To use the ternary operator just invoke the ternary macro

fn is_ipv4(val: &str) -> i32 {
    ternary!(val == "ipv4", 4, 16)
}

No runtime deps