#[derive(ToTokens)], calling quote::ToTokens on each field. Nothing more, nothing less.

```rust use derivequotetotokens::ToTokens; use quote::{ToTokens, quote}; use procmacro2::Span; use syn::{Token, Ident};

[derive(ToTokens)]

struct Tag { lt: Token![<], inner: Ident, gt: Token![>], }

let tag = /* snip */ asserteq!( tag.totokenstream().tostring(), quote! {

}.to_string(), ); ```

Enums work too. ```rust

[derive(ToTokens)]

enum Arrow { Left(Token![<], Token![-]), Right(Token![-], Token![>]), } ```