tisel 0.1.1

Effective type-based pseudodynamic dispatch to impls, enums and typeid
Documentation
//! Implementation macros. Because macros don't like to be in modules and actually appear in the
//! crateroot, the names of macros in here are typically of the form `__<macro impling for>_<actual
//! name>`
//!
//! They are stored in actual modules, but the nature of macro namespacing means they end up in the
//! crate root anyway :(
#[doc(hidden)]
pub mod typematch;

/// Macro that forces the input to be interpeted as a single $meta fragment - useful when
/// constructing attributes
#[doc(hidden)]
#[macro_export]
macro_rules! __macros_force_meta {
    ($meta:meta) => {
        $meta
    };
}

/// Macro that forces the input to be interpreted as a single pattern fragment
#[doc(hidden)]
#[macro_export]
macro_rules! __macros_force_pat {
    ($p:pat) => {
        $p
    };
}

/// Simple re-export of compile error that also lets you glob together string literals directly in
/// the arguments.
#[doc(hidden)]
#[macro_export]
macro_rules! __macros_compile_error {
    ($($lits:literal)*) => {
        $crate::_reexports::core::compile_error!(
            $crate::_reexports::core::concat!($($lits)*)
        )
    };
}

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.