Thanks for the feedback @quinedot!
"The Rust Programming Language" book, chapter 3, section "Compound Types" says "Rust has two primitive compound types: tuples and arrays." So I thought I should refer to all the other compound types as "non-primitive".
In the latest version of my diagram, "enum" and "union" are far apart.
I didn't include
OsStr because I didn't know about it, but also because I decided to draw the line at anything related to FFI and unsafe things. Maybe someday I'll include those in a more advanced diagram.
If I include
Path where does it belong?
I'm open to adding
dyn, but don't know where to put it.
Are function pointers distinct enough from pointers to other types that I should include them as a unique type?
The latest version of the diagram is at https://mvolkmann.github.io/blog/assets/rust-types.png?v=1.0.3.