1#include "Uris/askcore_types.h"
3#include "MetaTypeImplementation.h"
5KNOWCORE_DEFINE_METATYPE_START_IMPLEMENTATION(QString)
6 ReturnValue<QByteArray> md5(
const QString& _value)
const override
8 QCryptographicHash hash(QCryptographicHash::Md5);
9 hash.addData(_value.toUtf8());
10 return kCrvSuccess(hash.result());
12 ReturnValue<QJsonValue> toJsonValue(
const QString& _value,
const SerialisationContexts&)
const override
14 return kCrvSuccess(QJsonValue(_value));
16 ReturnVoid fromJsonValue(QString* _value,
const QJsonValue& _json_value,
const DeserialisationContexts&)
const override
18 if(_json_value.isString())
20 *_value = _json_value.toString();
23 return expectedError(
"string", _json_value);
26 ReturnValue<QCborValue> toCborValue(
const QString& _value,
const SerialisationContexts&)
const override
28 return kCrvSuccess(QCborValue(_value));
30 ReturnVoid fromCborValue(QString* _value,
const QCborValue& _cbor_value,
const DeserialisationContexts&)
const override
32 if(_cbor_value.isString())
34 *_value = _cbor_value.toString();
37 return expectedError(
"string", _cbor_value);
40 ReturnValue<QString> printable(
const QString& _value)
const override
42 return kCrvSuccess(_value);
44 ReturnValue<QString> toRdfLiteral(
const QString& _value,
const SerialisationContexts&)
const override
46 return kCrvSuccess(_value);
48 ReturnVoid fromRdfLiteral(QString* _value,
const QString& _serialised,
const DeserialisationContexts&)
const override
50 *_value = _serialised;
53KNOWCORE_DEFINE_METATYPE_FINISH_IMPLEMENTATION(QString)
56KNOWCORE_DEFINE_METATYPE_START_IMPLEMENTATION(QByteArray)
57 ReturnValue<QByteArray> md5(
const QByteArray& _value)
const override
59 QCryptographicHash hash(QCryptographicHash::Md5);
61 return kCrvSuccess(hash.result());
63 ReturnValue<QJsonValue> toJsonValue(
const QByteArray& _value,
const SerialisationContexts&)
const override
65 return kCrvSuccess(QJsonValue(QString::fromLatin1(_value.toBase64())));
67 ReturnVoid fromJsonValue(QByteArray* _value,
const QJsonValue& _json_value,
const DeserialisationContexts&)
const override
69 if(_json_value.isString())
71 QString b64 = _json_value.toString();
72 *_value = QByteArray::fromBase64(b64.toLatin1());
75 return expectedError(
"string", _json_value);
78 ReturnValue<QCborValue> toCborValue(
const QByteArray& _value,
const SerialisationContexts&)
const override
80 return kCrvSuccess(QCborValue(_value));
82 ReturnVoid fromCborValue(QByteArray* _value,
const QCborValue& _cbor_value,
const DeserialisationContexts&)
const override
84 if(_cbor_value.isByteArray())
86 *_value = _cbor_value.toByteArray();
89 return expectedError(
"bytearray", _cbor_value);
92 ReturnValue<QString> printable(
const QByteArray& _value)
const override
94 return kCrvSuccess(clog_qt::to_qstring(_value));
96 ReturnValue<QString> toRdfLiteral(
const QByteArray& _value,
const SerialisationContexts&)
const override
98 return kCrvSuccess(QString::fromLatin1(_value.toBase64()));
100 ReturnVoid fromRdfLiteral(QByteArray* _value,
const QString& _serialised,
const DeserialisationContexts&)
const override
102 *_value = QByteArray::fromBase64(_serialised.toLatin1());
103 return kCrvSuccess();
105KNOWCORE_DEFINE_METATYPE_FINISH_IMPLEMENTATION(QByteArray)