ns std::reflect pub fn default_or_empty() { T is Default ? T::default : T is Empty ? T::empty : throw IllegalArgumentException("Type ${T::fqn} extends neither Default nor Empty.") }