Convert the following to Structs:
       - dicts
       - list elements that are dicts
       - ???

    This function is harmless to call on arbitrary variables.

def convert_to_struct(value):
    """Convert the following to Structs:
       - dicts
       - list elements that are dicts
       - ???

    This function is harmless to call on arbitrary variables.
    """
    direct_converts = [dict, OrderedDict, UserDict]
    if type(value) in direct_converts:
        # Convert dict-like things to Struct
        value = Struct(value)
    elif isinstance(value, list):
        # Process list elements
        value = [convert_to_struct(z) for z in value]

    # Done
    return value