[WTF] Import std::optional reference implementation as WTF::Optional
[WebKit-https.git] / Source / WebCore / mathml / MathMLOperatorDictionary.h
index e9c4ef6..e0316d7 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef MathMLOperatorDictionary_h
-#define MathMLOperatorDictionary_h
+#pragma once
 
 #if ENABLE(MATHML)
 
 #include <unicode/utypes.h>
+#include <wtf/Optional.h>
 
 namespace WebCore {
 
@@ -43,18 +43,18 @@ enum Flag {
     Stretchy = 0x20,
     Symmetric = 0x40
 };
-struct Entry {
-    UChar character;
-    unsigned form : 2;
-    unsigned lspace : 3;
-    unsigned rspace : 3;
-    unsigned flags : 8;
+const unsigned allFlags = Accent | Fence | LargeOp | MovableLimits | Separator | Stretchy | Symmetric;
+struct Property {
+    MathMLOperatorDictionary::Form form;
+    // Default leading and trailing spaces are "thickmathspace".
+    unsigned short leadingSpaceInMathUnit { 5 };
+    unsigned short trailingSpaceInMathUnit { 5 };
+    // Default operator properties are all set to "false".
+    unsigned short flags { 0 };
 };
-const Entry* getEntry(UChar, Form);
-const Entry* getEntry(UChar);
-bool isVertical(UChar);
+std::optional<Property> search(UChar32, Form, bool explicitForm);
+bool isVertical(UChar32);
 }
 
 }
 #endif // ENABLE(MATHML)
-#endif // MathMLOperatorDictionary_h