def to_s
      return '' if @printed
      @printed = true
      struct = required_structs
      members = @values.map do |key, value|
        type = RustStruct.type_name(value[0])
        subtype = RustStruct.type_name(value[1])
        # TODO: add option for pub / private
        #       Will this be a per field thing that is configurable from
        #       within the JSON or will it be configured on the parse command?
        member = "    pub #{key}: #{type}"
        member << "<#{subtype}>" unless value[1].nil?
        member
      end
      struct << "pub struct #{@name} {\n" + members.join(",\n") + ",\n}\n\n"
      struct = struct.gsub("\n\n\n", "\n\n")
      reset if @root
      struct
    end
def to_s
      return '' if @printed
      @printed = true
      struct = required_structs
      members = @values.map do |key, value|
        type = RustStruct.type_name(value[0])
        subtype = RustStruct.type_name(value[1])
        # TODO: add option for pub / private
        #       Will this be a per field thing that is configurable from
        #       within the JSON or will it be configured on the parse command?
        member = "    pub #{key}: #{type}"
        member << "<#{subtype}>" unless value[1].nil?
        member
      end
      struct << "pub struct #{@name} {\n" + members.join(",\n") + ",\n}\n\n"
      struct = struct.gsub("\n\n\n", "\n\n")
      reset if @root
      struct
    end
two Rust structs are equal if all of their keys / value types are the same
 to_s controlls how to display the RustStruct as a Rust Struct