9cfc42275d
This is still very slow, because we do a trait lookup for each field. Perhaps storing the visited types in a set to reuse types would improve performance somewhat. Also we may want to pre-decide some known types (e.g. `Vec<T>`, `Option<T>`).