8个版本

0.1.7 2021年1月27日
0.1.6 2021年1月27日
0.1.2 2020年7月9日
0.1.0 2020年6月30日

#1537 in 过程宏

MIT/Apache

30KB
641

爱罗哈

爱罗哈是Rust的标记化库。

使用

爱罗哈提供 derive 宏 iroha::ToTokens. 派生结构体或枚举将实现 quote::ToTokens.

use iroha::ToTokens;
use proc_macro2::TokenStream;
use quote::quote;

#[derive(ToTokens)]
struct Foo {
    a: i32,
    b: i64
}

#[derive(ToTokens)]
#[Iroha(mod_path="path::to::mod")]
enum Bar {
    A(u8, String),
    B
}

fn some_fn() -> TokenStream {
    let foo = Foo {a: 1, b: 2};
    let bar = Bar::A(1, "test".to_string);

    quote! {
        || (#foo, #bar)
    }
}

支持类型

  • 实现了 quote::ToTokens 的任何类型
  • String
  • Vec, HashMap, HashSet
  • Result, Option
  • Tuple(仅支持两个元素)
  • std::marker::PhantomData

依赖

~0.8–1.3MB
~25K SLoC