summaryrefslogtreecommitdiff
path: root/matlab/src/Util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'matlab/src/Util.cpp')
-rw-r--r--matlab/src/Util.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/matlab/src/Util.cpp b/matlab/src/Util.cpp
index 2ddc7e6dc1d..3e1e92998ac 100644
--- a/matlab/src/Util.cpp
+++ b/matlab/src/Util.cpp
@@ -535,6 +535,21 @@ IceMatlab::createResultException(mxArray* ex)
return r;
}
+static const char* optionalFields[] = {"hasValue", "value"};
+
+mxArray*
+IceMatlab::createOptionalValue(bool hasValue, mxArray* value)
+{
+ mwSize dims[2] = {1, 1};
+ auto r = mxCreateStructArray(2, dims, 2, optionalFields);
+ mxSetFieldByNumber(r, 0, 0, createBool(hasValue));
+ if(hasValue)
+ {
+ mxSetFieldByNumber(r, 0, 1, value);
+ }
+ return r;
+}
+
mxArray*
IceMatlab::createStringList(const vector<string>& v)
{