Vuo 2.4.2
Loading...
Searching...
No Matches
VuoTextComparison.c
Go to the documentation of this file.
1
10#include "type.h"
11
13#ifdef VUO_COMPILER
15 "title" : "Text Comparison",
16 "description" : "Parameters for comparing two texts",
17 "keywords" : [ ],
18 "version" : "1.0.0",
19 "dependencies" : [
20 "VuoText",
21 "VuoList_VuoTextComparison",
22 ]
23 });
24#endif
26
32{
33 VuoTextComparison value = {VuoTextComparison_Equals, true};
34
35 json_object *o;
36 if (json_object_object_get_ex(js, "type", &o))
37 {
38 const char *typeAsString = json_object_get_string(o);
39 if (! strcmp(typeAsString, "equals"))
40 value.type = VuoTextComparison_Equals;
41 else if (! strcmp(typeAsString, "contains"))
42 value.type = VuoTextComparison_Contains;
43 else if (! strcmp(typeAsString, "beginsWith"))
44 value.type = VuoTextComparison_BeginsWith;
45 else if (! strcmp(typeAsString, "endsWith"))
46 value.type = VuoTextComparison_EndsWith;
47 else if (! strcmp(typeAsString, "wildcard"))
48 value.type = VuoTextComparison_MatchesWildcard;
49 else if (! strcmp(typeAsString, "regex"))
50 value.type = VuoTextComparison_MatchesRegEx;
51 }
52
53 if (json_object_object_get_ex(js, "isCaseSensitive", &o))
54 value.isCaseSensitive = json_object_get_boolean(o);
55
56 return value;
57}
58
64{
65 json_object *js = json_object_new_object();
66
67 const char *typeAsString;
68 switch (value.type)
69 {
70 case VuoTextComparison_Equals:
71 typeAsString = "equals";
72 break;
73 case VuoTextComparison_Contains:
74 typeAsString = "contains";
75 break;
76 case VuoTextComparison_BeginsWith:
77 typeAsString = "beginsWith";
78 break;
79 case VuoTextComparison_EndsWith:
80 typeAsString = "endsWith";
81 break;
82 case VuoTextComparison_MatchesWildcard:
83 typeAsString = "wildcard";
84 break;
85 case VuoTextComparison_MatchesRegEx:
86 typeAsString = "regex";
87 break;
88 }
89 json_object_object_add(js, "type", json_object_new_string(typeAsString));
90
91 json_object_object_add(js, "isCaseSensitive", json_object_new_boolean(value.isCaseSensitive));
92
93 return js;
94}
95
96#if 0
97// VuoRuntimeCommunicator::mergeEnumDetails and VuoInputEditorWithEnumMenu::setUpMenuTree
98// currently assume that types implementing a _getAllowedValues function can be stored in int64_t.
99// Since VuoTextComparison is a struct, it topples the stack.
100
104VuoList_VuoTextComparison VuoTextComparison_getAllowedValues(void)
105{
107 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_Equals, false, ""});
108 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_Equals, true, ""});
109 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_Contains, false, ""});
110 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_Contains, true, ""});
111 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_BeginsWith, false, ""});
112 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_BeginsWith, true, ""});
113 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_EndsWith, false, ""});
114 VuoListAppendValue_VuoTextComparison(l, (VuoTextComparison){VuoTextComparison_EndsWith, true, ""});
115 VuoTextComparison_MatchesWildcard…
116 VuoTextComparison_MatchesRegEx…
117 return l;
118}
119#endif
120
126{
127 const char *typeAsString;
128 switch (value.type)
129 {
130 case VuoTextComparison_Equals:
131 typeAsString = "Equals";
132 break;
133 case VuoTextComparison_Contains:
134 typeAsString = "Contains";
135 break;
136 case VuoTextComparison_BeginsWith:
137 typeAsString = "Begins with";
138 break;
139 case VuoTextComparison_EndsWith:
140 typeAsString = "Ends with";
141 break;
142 case VuoTextComparison_MatchesWildcard:
143 typeAsString = "Matches wildcard";
144 break;
145 case VuoTextComparison_MatchesRegEx:
146 typeAsString = "Matches regex";
147 break;
148 }
149
150 const char *caseAsString = (value.isCaseSensitive ? "case-sensitive" : "not case-sensitive");
151
152 return VuoText_format("%s (%s)", typeAsString, caseAsString);
153}