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