std::set AllowedFeatureTypes()

in tensorflow_data_validation/anomalies/schema.cc [84:118]


std::set<tensorflow::metadata::v0::FeatureType> AllowedFeatureTypes(
    Feature::DomainInfoCase domain_info_case) {
  switch (domain_info_case) {
    case Feature::kDomain:
      return {tensorflow::metadata::v0::BYTES};
    case Feature::kBoolDomain:
      return {tensorflow::metadata::v0::INT, tensorflow::metadata::v0::BYTES,
              tensorflow::metadata::v0::FLOAT};
    case Feature::kIntDomain:
      return {tensorflow::metadata::v0::INT, tensorflow::metadata::v0::BYTES};
    case Feature::kFloatDomain:
      return {tensorflow::metadata::v0::FLOAT, tensorflow::metadata::v0::BYTES};
    case Feature::kStringDomain:
      return {tensorflow::metadata::v0::BYTES};
    case Feature::kStructDomain:
      return {tensorflow::metadata::v0::STRUCT};
    case Feature::kNaturalLanguageDomain:
      return {tensorflow::metadata::v0::BYTES, tensorflow::metadata::v0::INT};
    case Feature::kImageDomain:
      return {tensorflow::metadata::v0::BYTES};
    case Feature::kMidDomain:
      return {tensorflow::metadata::v0::BYTES};
    case Feature::kUrlDomain:
      return {tensorflow::metadata::v0::BYTES};
    case Feature::kTimeDomain:
      // Consider also supporting time as floats.
      return {tensorflow::metadata::v0::INT, tensorflow::metadata::v0::BYTES};
    case Feature::DOMAIN_INFO_NOT_SET:
      ABSL_FALLTHROUGH_INTENDED;
    default:
      return {tensorflow::metadata::v0::INT, tensorflow::metadata::v0::FLOAT,
              tensorflow::metadata::v0::BYTES,
              tensorflow::metadata::v0::STRUCT};
  }
}