This blog post looks interesting and can give some ideas: http://jadpole.github.io/rust/builder-macro