Returns struct as an OrderedDict or tuple, if possible.

If all elements of struct have names, convert struct to an OrderedDict. If no element has a name, convert struct to a tuple. If struct has both named and unnamed elements, raise an error.

struct A Struct.
recursive Whether to convert nested Structs recursively.

ValueError If struct (or any nested Struct when recursive=True) contains both named and unnamed elements.