8 releases

0.1.7 Jan 27, 2021
0.1.6 Jan 27, 2021
0.1.2 Jul 9, 2020
0.1.0 Jun 30, 2020

#26 in #foo-bar

MIT/Apache

30KB
641 lines

Iroha

Iroha is a tokenization Library for Rust.

Usage

Iroha provide derive macro iroha::ToTokens. Derived struct or enum will be implemented 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)
    }
}

Supported Type

  • Any types witch implemented quote::ToTokens
  • String
  • Vec, HashMap, HashSet
  • Result, Option
  • Tuple(only support two elements)
  • std::marker::PhantomData

Dependencies

~0.6–1.1MB
~22K SLoC