in glean_parser/swift.py [0:0]
def type_name(obj: Union[metrics.Metric, pings.Ping]) -> str:
"""
Returns the Swift type to use for a given metric or ping object.
"""
generate_enums = getattr(obj, "_generate_enums", [])
if len(generate_enums):
generic = None
for member, suffix in generate_enums:
if len(getattr(obj, member)):
generic = util.Camelize(obj.name) + suffix
else:
if isinstance(obj, metrics.Event):
generic = "NoExtras"
else:
generic = "No" + suffix
return "{}<{}>".format(class_name(obj.type), generic)
generate_structure = getattr(obj, "_generate_structure", [])
if len(generate_structure):
generic = util.Camelize(obj.name) + "Object"
return "{}<{}>".format(class_name(obj.type), generic)
return class_name(obj.type)