Add upb_FindUnknownStatus_String function to convert the FindUnknownStatus to a string.

PiperOrigin-RevId: 775001592
diff --git a/upb/message/promote.c b/upb/message/promote.c
index b725caf..c5853d2 100644
--- a/upb/message/promote.c
+++ b/upb/message/promote.c
@@ -406,3 +406,16 @@
   }
   return kUpb_UnknownToMessage_Ok;
 }
+
+const char* upb_FindUnknownStatus_String(upb_FindUnknown_Status status) {
+  switch (status) {
+    case kUpb_FindUnknown_Ok:
+      return "Ok";
+    case kUpb_FindUnknown_ParseError:
+      return "Parse error";
+    case kUpb_FindUnknown_NotPresent:
+      return "Field not found";
+    default:
+      return "Unknown status";
+  }
+}
diff --git a/upb/message/promote.h b/upb/message/promote.h
index 9e8fbe2..3fd76d8 100644
--- a/upb/message/promote.h
+++ b/upb/message/promote.h
@@ -117,6 +117,10 @@
                                          const upb_MiniTable* mini_table,
                                          int decode_options, upb_Arena* arena);
 
+// Utility function for wrapper languages to get an error string from a
+// upb_UnknownToMessageStatus.
+const char* upb_FindUnknownStatus_String(upb_FindUnknown_Status status);
+
 ////////////////////////////////////////////////////////////////////////////////
 // OLD promotion interfaces, will be removed!
 ////////////////////////////////////////////////////////////////////////////////