string t_swift_generator::type_to_enum()

in compiler/cpp/src/thrift/generate/t_swift_generator.cc [3300:3379]


string t_swift_generator::type_to_enum(t_type* type, bool qualified) {
  type = get_true_type(type);

  string result = qualified ? "TType." : ".";
  if (!gen_cocoa_) {
    if (type->is_base_type()) {
      t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
      switch (tbase) {
        case t_base_type::TYPE_VOID:
          throw "NO T_VOID CONSTRUCT";
        case t_base_type::TYPE_STRING:
          return result + "string";
        case t_base_type::TYPE_BOOL:
          return result + "bool";
        case t_base_type::TYPE_I8:
          return result + "i8";
        case t_base_type::TYPE_I16:
          return result + "i16";
        case t_base_type::TYPE_I32:
          return result + "i32";
        case t_base_type::TYPE_I64:
          return result + "i64";
        case t_base_type::TYPE_DOUBLE:
          return result + "double";
        case t_base_type::TYPE_UUID:
          return result + "uuid";
        default:
          throw "compiler error: unhandled type";
      }
    } else if (type->is_enum()) {
      return result + "i32";
    } else if (type->is_struct() || type->is_xception()) {
      return result + "struct";
    } else if (type->is_map()) {
      return result + "map";
    } else if (type->is_set()) {
      return result + "set";
    } else if (type->is_list()) {
      return result + "list";
    }
  } else {
    if (type->is_base_type()) {
      t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
      switch (tbase) {
        case t_base_type::TYPE_VOID:
          throw "NO T_VOID CONSTRUCT";
        case t_base_type::TYPE_STRING:
          return result + "STRING";
        case t_base_type::TYPE_BOOL:
          return result + "BOOL";
        case t_base_type::TYPE_I8:
          return result + "BYTE";
        case t_base_type::TYPE_I16:
          return result + "I16";
        case t_base_type::TYPE_I32:
          return result + "I32";
        case t_base_type::TYPE_I64:
          return result + "I64";
        case t_base_type::TYPE_DOUBLE:
          return result + "DOUBLE";
        case t_base_type::TYPE_UUID:
          return result + "UUID";
        default:
          throw "compiler error: unhandled type";
      }
    } else if (type->is_enum()) {
      return result + "I32";
    } else if (type->is_struct() || type->is_xception()) {
      return result + "STRUCT";
    } else if (type->is_map()) {
      return result + "MAP";
    } else if (type->is_set()) {
      return result + "SET";
    } else if (type->is_list()) {
      return result + "LIST";
    }
  }

  throw "INVALID TYPE IN type_to_enum: " + type->get_name();
}