This crate allows you to get a recursive type signature of a provided type.
Example:
type_sig! // TypeSignature { name: "u8", id: TypeId(..), .. }
type_sig! // TypeSignature { name: "*const *mut u8", .., children: [TypeSignature { name: "*mut u8", .. }] }