import ctypes


def print_structure(structure, indent=""):
    """Return string representation of ctypes.Structure."""
    result = [] if indent else [""]
    for field in structure._fields_:
        name = field[0]
        attr = getattr(structure, name)
        if isinstance(attr, ctypes.Structure):
            if name in structure._anonymous_:
                line = "{}- Struct\n{}".format(indent, print_structure(attr, indent + "  "))
            else:
                line = "{}* {}:\n{}".format(indent, name, print_structure(attr, indent + "  "))
        elif isinstance(attr, ctypes.Union):
            line = "{}- Union\n{}".format(indent, print_structure(attr, indent + "  "))
        else:
            line = f"{indent}* {name}: {attr}"
        result.append(line)
    return "\n".join(result)