pub fn type_name<T: Serialize>(t: &T) -> Result<&'static str, NotStruct>
from https://stackoverflow.com/questions/46612327/using-serde-to-get-a-types-name-as-string-when-the-type-is-only-serialize