tt-equal 0.1.2

The macro `tt_equal` acts as a predicate for whether two token trees are equal.
Documentation

tt-equal

Build Status Latest Version Rust Documentation

This library is an entry in the tt_call series of modular interoperable tt-muncher building blocks.

Inludes the procedural macro tt_equal that acts as a predicate for whether two token trees are equal. Intended for use with tt_if.

use tt_equal::tt_equal;
use tt_call::tt_if;

macro_rules! same_ident{
    {
        $id1:ident, $id2:ident
    } => {
        tt_if!{
            condition = [{tt_equal}]
            input = [{ $id1 $id2 }]         // The two identifiers are here passed to 'tt_equal'
            true = [{
                const $id1: bool = true;
            }]
            false = [{
                const $id1: bool = false;
            }]
        }
    }
}

same_ident!(AN_IDENT, AN_IDENT);            // Equal identifiers result in a true constant
same_ident!(A_DIFFERENT_IDENT, AN_IDENT);   // Different identifiers result in a false constant

fn main() {
    assert_eq!(AN_IDENT, true);
    assert_eq!(A_DIFFERENT_IDENT, false);
}

License