murarth / gumdrop

Rust option parser with custom derive support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Consider removing syn and proc-macro2

RazrFalcon opened this issue · comments

I'm not familiar with procedural macros, but is it possible to depend only on proc-macro? The problem is that proc-macro2 and syn a very slow to build:

> cargo bloat --release --time -j1
Compiling ...

  Time Crate
44.36s syn
21.22s gumdrop_derive
 5.42s proc_macro2
 1.55s quote
 0.48s gumdrop
 0.12s unicode_xid

On the other hand, arguments parsing without macros is too verbose.

syn cannot be removed, at least not without replacing it with something that performs its essential functions.

syn parses the Rust syntax of any struct/enum declarations that are decorated with the derive(Options) attribute and parses the content of any #[options(default_expr = "...")] attribute as a Rust expression. This requires compiling syn with the full feature, to enable parsing all valid Rust syntax.

I see. Thanks.