Guest User

Untitled

a guest
Jun 18th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. extern crate syn;
  2. #[macro_use] extern crate quote;
  3. extern crate proc_macro2;
  4.  
  5. use proc_macro2::Span;
  6.  
  7. fn main() {
  8. let name = syn::Ident::new("Point", Span::call_site());
  9. let fields: Vec<_> = vec!["x", "y"]
  10. .into_iter()
  11. .map(|s| syn::Ident::new(s, Span::call_site()))
  12. .collect();
  13.  
  14. let values = vec![syn::Ident::new("self.foo", Span::call_site()),
  15. syn::Ident::new("self.bar", Span::call_site())];
  16.  
  17. let tok = quote! {
  18. #name {
  19. #( #fields: #values ),*
  20. }
  21. };
  22.  
  23. println!("{}", tok)
  24. }
Add Comment
Please, Sign In to add comment