1#include "MetaTypeImplementation.h"
2#include "Uris/askcore_datatype.h"
5KNOWCORE_DEFINE_METATYPE_START_IMPLEMENTATION(QString)
6cres_qresult<QByteArray> md5(
const QString& _value)
const override
8 QCryptographicHash hash(QCryptographicHash::Md5);
9 hash.addData(_value.toUtf8());
10 return cres_success(hash.result());
12cres_qresult<QJsonValue> toJsonValue(
const QString& _value,
13 const SerialisationContexts&)
const override
15 return cres_success(QJsonValue(_value));
17cres_qresult<void> fromJsonValue(QString* _value,
const QJsonValue& _json_value,
18 const DeserialisationContexts&)
const override
20 if(_json_value.isString())
22 *_value = _json_value.toString();
23 return cres_success();
27 return expectedError(
"string", _json_value);
30cres_qresult<QCborValue> toCborValue(
const QString& _value,
31 const SerialisationContexts&)
const override
33 return cres_success(QCborValue(_value));
35cres_qresult<void> fromCborValue(QString* _value,
const QCborValue& _cbor_value,
36 const DeserialisationContexts&)
const override
38 if(_cbor_value.isString())
40 *_value = _cbor_value.toString();
41 return cres_success();
45 return expectedError(
"string", _cbor_value);
48cres_qresult<QString> printable(
const QString& _value)
const override
50 return cres_success(_value);
52cres_qresult<QString> toRdfLiteral(
const QString& _value,
53 const SerialisationContexts&)
const override
55 return cres_success(_value);
57cres_qresult<void> fromRdfLiteral(QString* _value,
const QString& _serialised,
58 const DeserialisationContexts&)
const override
60 *_value = _serialised;
61 return cres_success();
63KNOWCORE_DEFINE_METATYPE_FINISH_IMPLEMENTATION(QString)
65KNOWCORE_DEFINE_METATYPE_START_IMPLEMENTATION(QByteArray)
66cres_qresult<QByteArray> md5(
const QByteArray& _value)
const override
68 QCryptographicHash hash(QCryptographicHash::Md5);
70 return cres_success(hash.result());
72cres_qresult<QJsonValue> toJsonValue(
const QByteArray& _value,
73 const SerialisationContexts&)
const override
75 return cres_success(QJsonValue(QString::fromLatin1(_value.toBase64())));
77cres_qresult<void> fromJsonValue(QByteArray* _value,
const QJsonValue& _json_value,
78 const DeserialisationContexts&)
const override
80 if(_json_value.isString())
82 QString b64 = _json_value.toString();
83 *_value = QByteArray::fromBase64(b64.toLatin1());
84 return cres_success();
88 return expectedError(
"string", _json_value);
91cres_qresult<QCborValue> toCborValue(
const QByteArray& _value,
92 const SerialisationContexts&)
const override
94 return cres_success(QCborValue(_value));
96cres_qresult<void> fromCborValue(QByteArray* _value,
const QCborValue& _cbor_value,
97 const DeserialisationContexts&)
const override
99 if(_cbor_value.isByteArray())
101 *_value = _cbor_value.toByteArray();
102 return cres_success();
106 return expectedError(
"bytearray", _cbor_value);
109cres_qresult<QString> printable(
const QByteArray& _value)
const override
111 return cres_success(clog_qt::to_qstring(_value));
113cres_qresult<QString> toRdfLiteral(
const QByteArray& _value,
114 const SerialisationContexts&)
const override
116 return cres_success(QString::fromLatin1(_value.toBase64()));
118cres_qresult<void> fromRdfLiteral(QByteArray* _value,
const QString& _serialised,
119 const DeserialisationContexts&)
const override
121 *_value = QByteArray::fromBase64(_serialised.toLatin1());
122 return cres_success();
124KNOWCORE_DEFINE_METATYPE_FINISH_IMPLEMENTATION(QByteArray)