ab_contracts_macros_impl/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#![feature(extract_if, iter_map_windows, let_chains)]

//! See and use `ab-contracts-macros` crate instead, this is its implementation detail

mod contract;

use proc_macro::TokenStream;

#[proc_macro_attribute]
pub fn contract(_attr: TokenStream, item: TokenStream) -> TokenStream {
    contract::contract(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}