Vous avez reçu un message "Your GitLab account has been locked ..." ? Pas d'inquiétude : lisez cet article https://docs.gricad-pages.univ-grenoble-alpes.fr/help/unlock/

Commit f47ddc9c authored by EXT Arnaud Clère's avatar EXT Arnaud Clère
Browse files

Cosmetic changes

parent cde908f0
......@@ -269,8 +269,7 @@ protected:
bool _isOk() { return cbor; }
void _setChoice(bool v) { isChoice=v; }
void _reportError(QIdentifierLiteral e) { if (!isChoice)
errors.append(Error{ e, currentPath() }); }
void _reportError(QIdentifierLiteral e) { if (!isChoice) errors.append(Error{ e, currentPath() }); }
private:
const QCborValue& current(int outer=0) const { Q_ASSERT(0<=outer); return steps.size()-outer <= 0 ? *cbor : steps[steps.size()-outer-1].item; }
......
......@@ -257,7 +257,7 @@ class QIdentifierLiteral : public QDataView<AsciiIdentifier>
public:
using QDataView::QDataView;
constexpr inline const char* utf8() const noexcept { return m_bytes.data(); } // TODO Remove ?
constexpr inline const char* utf8() const noexcept { return m_bytes.data(); }
constexpr inline QLatin1String latin1() const noexcept { return m_bytes; }
};
......
......@@ -158,16 +158,9 @@ class QJsonWriter : public IWriter
Q_DISABLE_COPY(QJsonWriter)
Q_ENABLE_MOVE(QJsonWriter, std::swap(io, o.io); std::swap(ba, o.ba); std::swap(levels, o.levels); )
public:
<<<<<<< HEAD
QJsonWriter(QIODevice* io) : io(io) { Q_ASSERT(io); }
~QJsonWriter() { for (auto&& level : levels) io->write(level.end); }
void reset(QIODevice* io) { this->io=io; Q_ASSERT(io); levels.resize(0); }
=======
QJsonWriter( QIODevice* io) : io(io) { Q_ASSERT(io || ba); }
QJsonWriter(QByteArray* ba) : ba(ba) { Q_ASSERT(io || ba); }
~QJsonWriter() { while (!levels.isEmpty()) write(levels.takeLast().end); }
// void reset(QIODevice* io) { this->io=io; Q_ASSERT(io); levels.resize(0); }
>>>>>>> Improved QJsonWriter perf x2 by supporting QByteArray in addition to
// Shortcuts
/**/ Val<Cursor> value ( ) { return Cursor(this).value(); }
......@@ -176,48 +169,6 @@ public:
protected:
template<class T> friend class QModelWriter;
<<<<<<< HEAD
bool _sequence(quint32* s=nullptr) { Q_UNUSED(s); levels.push(Step{"","]"}); return io->write("["); }
bool _record (quint32* s=nullptr) { Q_UNUSED(s); levels.push(Step{"","}"}); return io->write("{"); }
bool _null ( ) { return io->write( "null" ); }
bool _bind ( QUtf8DataView u) { return putString( u.data() ); }
// JSON literals
bool _bind ( bool&& n) { return io->write( n?"true":"false" ); }
bool _bind ( float&& n) { return io->write(QByteArray::number(n,'g',std::numeric_limits< float>::max_digits10)); }
bool _bind ( double&& n) { return io->write(QByteArray::number(n,'g',std::numeric_limits<double>::max_digits10)); }
bool _bind ( quint64&& t) { return io->write(QByteArray::number(t)); }
bool _bind ( qint64&& t) { return io->write(QByteArray::number(t)); }
bool _item(QIdentifier& n) { auto r=(io->write(levels.last().sep) || *levels.last().sep=='\0') && putString(n.data()) && io->write(":"); levels.last().sep = ","; return r; }
bool _item(QIdentifierLiteral n) { auto r=(io->write(levels.last().sep) || *levels.last().sep=='\0') && putString(n.data()) && io->write(":"); levels.last().sep = ","; return r; }
bool _item( ) { auto r=(io->write(levels.last().sep) || *levels.last().sep=='\0') ; levels.last().sep = ","; return r; }
bool _out ( ) { return io->write(levels.pop() .end); }
private:
struct Step { const char* sep; const char* end; };
bool putString(const char* utf8)
{
io->putChar('"');
for (; utf8 && *utf8 ; utf8++)
{
/**/ if (*utf8 == '\\') { io->putChar('\\'); io->putChar('\\'); }
else if (*utf8 == '"') { io->putChar('\\'); io->putChar( '"'); }
else if (*utf8 < 0|| // UTF-8 sequence bytes
*utf8 >= ' ') { io->putChar(*utf8); }
else {
io->putChar('\\'); switch (*utf8) {
case '\t' : io->putChar( 't'); break;
case '\b' : io->putChar( 'b'); break;
case '\f' : io->putChar( 'f'); break;
case '\n' : io->putChar( 'n'); break;
case '\r' : io->putChar( 'r'); break;
default : io->putChar( 'u'); {
char high=((*utf8) / 16), low=((*utf8) % 16);
io->putChar( '0' );
io->putChar( '0' );
io->putChar(high+(high<10?'0':'A'-10));
io->putChar( low+( low<10?'0':'A'-10)); } break;
=======
bool _sequence(quint32* s=nullptr) { Q_UNUSED(s); levels.push(Step{"","]"}); return putChar('['); }
bool _record (quint32* s=nullptr) { Q_UNUSED(s); levels.push(Step{"","}"}); return putChar('{'); }
bool _null ( ) { return write("null"); }
......@@ -260,21 +211,15 @@ private:
putChar( '0' );
putChar(high+(high<10?'0':'A'-10));
putChar( low+( low<10?'0':'A'-10)); } break;
>>>>>>> Improved QJsonWriter perf x2 by supporting QByteArray in addition to
}
}
}
return putChar('"');
}
<<<<<<< HEAD
QIODevice* io;
QStack<Step> levels = QStack<Step>(); // TODO Replace with std::vector<bool> for performance //!< minimal dynamic context to implement out() and ensure well-formedness in case Cursor is abandoned
=======
QIODevice* io = nullptr;
QByteArray* ba = nullptr;
QStack<Step> levels = QStack<Step>(); // std::vector<bool> does not increase performance here
>>>>>>> Improved QJsonWriter perf x2 by supporting QByteArray in addition to
};
// --------------------------------------------------------------------------
......@@ -512,6 +457,13 @@ private:
return getChar();
}
}
bool nextIs(char expected, const char* validChars = nullptr) { return next(validChars, expected) == expected; }
bool get(char expected, const char* validChars = nullptr) {
if (nextIs(expected, validChars)) {
return getChar() == expected;
}
return false;
}
char getChar () { char c; if (io->getChar(&c) ) { if (c=='\n') { line++; column=0; } else { column++; } index++; return c; } return '\0'; }
char nextChar() { char c; if (io->peek (&c,1)==1) { return c; } return '\0'; }
char next(const char* validChars, char expected='\0') {
......@@ -525,12 +477,6 @@ private:
}
return nextChar();
}
bool get(char expected, const char* validChars = nullptr) {
if (next(validChars, expected) == expected) {
return getChar() == expected;
}
return false;
}
QIODevice* io;
int line = 0, column = 0, index = -1;
......@@ -546,11 +492,11 @@ private:
return true; }
// Read/Write caching of out-of-order item keys
quint8 cacheLevel = 0;
QJsonValue cachedValue ; //!< Only used AFTER --cacheLevel==1
QJsonBuilder cacheWriter ;
IBind* caching = nullptr; //!< Only used when cacheLevel>=1 && key!=expectedKey
QJsonVisitor cacheReader ; //!< Only used as caching
quint8 cacheLevel = 0;
QJsonValue cachedValue ; //!< Only used AFTER --cacheLevel==1
QJsonBuilder cacheWriter ;
IBind* caching = nullptr; //!< Only used when cacheLevel>=1 && key!=expectedKey
QJsonVisitor cacheReader ; //!< Only used as caching
};
// //////////////////////////////////////////////////////////////////////////
......
......@@ -72,7 +72,7 @@ protected:
bool _item(QIdentifier& n) { levels.last().key=n; return true; }
bool _item( ) { levels.last().idx++; return true; }
bool _out ( ) { levels.pop (); settings->endGroup(); return true; }
bool _out ( ) { levels.pop(); settings->endGroup(); return true; }
private:
QString key() {
Q_ASSERT(!levels.isEmpty());
......
......@@ -201,21 +201,22 @@ public:
template<typename T> Seq<Cursor> operator<<(T&& t) { return Cursor(this).value().sequence().item().bind(std::forward<T>(t)); }
template<typename T> Cursor bind (T&& t) { return Cursor(this).value() .bind(std::forward<T>(t)); }
protected:
bool _sequence(quint32* =nullptr) { utf8->append("["); return true; }
bool _record (quint32* =nullptr) { utf8->append("["); return true; }
bool _null ( ) { return true; }
bool _sequence(quint32* =nullptr) { if (0<level++) utf8->append("["); return true; }
bool _record (quint32* =nullptr) { if (0<level++) utf8->append("["); return true; }
bool _null ( ) { return true; }
bool _bind ( QUtf8DataView u) { utf8->append(u.data(), u.size()); return true; }
bool _bind ( float&& n) { static QByteArray s; s.setNum(double(n),'g',6); return _bind(QUtf8DataView(s.constData(), s.size())); } // with QDebug precision
bool _bind ( double&& n) { static QByteArray s; s.setNum( n ,'g',6); return _bind(QUtf8DataView(s.constData(), s.size())); } // with QDebug precision
bool _item(QIdentifier& n) { utf8->append(" ").append(n.utf8()).append(":"); return true; }
bool _item( ) { utf8->append(" ") ; return true; }
bool _out ( ) { utf8->append("]") ; return true; }
bool _out ( ) { if (0<--level) utf8->append("]") ; return true; }
void _meta(QIdentifierLiteral& n, QAsciiData& m) { if (n==qmName) utf8->append('(').append(m.utf8()).append(")"); }
private:
template<class T> friend class QModelWriter;
QByteArray* utf8;
int level = 0;
};
class Text
......@@ -262,7 +263,7 @@ static Phone phone {Phone::Home,"+44 1234567"};
groupWarmup=(previousTotal<0.01 || std::abs(groupTotal-previousTotal)*100/previousTotal > 1.); \
previousTotal=groupTotal; \
groupTotal=0.; \
if (previousTotal<0.01) { fprintf(results,"============"); fprintf(samples, "%-12s |================================================================================\n", group); } else fprintf(results,"%-12s",group);
if (previousTotal<0.01) { fprintf(results,"============"); fprintf(samples, "%-14s|================================================================================\n", group); } else fprintf(results,"%-12s",group);
#define GROUP_STOP \
if (previousTotal<0.01) fprintf(results,"|total(usecs)|variation(%%)\n"); else fprintf(results,"|%12.1f|%5.1f\n", groupTotal, previousTotal>=0.01 ? std::abs(groupTotal-previousTotal)*100/previousTotal : 0); \
......@@ -1073,14 +1074,15 @@ void doGuiExample() {
QModelWriter<>(& flatModel).sequence().with(persons, flatten);
QDialog dlg;
auto layout = new QHBoxLayout(&dlg); dlg.setLayout(layout);
auto split = new QSplitter (&dlg); layout->addWidget(split );
auto matrix = new QTableView(&dlg); split ->addWidget(matrix); matrix->setModel(&matrixModel); matrix->resizeColumnsToContents();
auto tree = new QTreeView (&dlg); split ->addWidget(tree ); tree ->setModel(& treeModel); for(int i=0; i<treeModel.columnCount(); i++) tree->resizeColumnToContents(i);
auto table = new QTableView(&dlg); split ->addWidget(table ); table ->setModel(& tableModel); table ->resizeColumnsToContents();
auto view = new QTreeView (&dlg); split ->addWidget(view ); view ->setModel(& viewModel); for(int i=0; i<viewModel.columnCount(); i++) view->resizeColumnToContents(i);
auto custom = new QTableView(&dlg); split ->addWidget(custom); custom->setModel(&customModel); custom->resizeColumnsToContents();
auto flat = new QTableView(&dlg); split ->addWidget(flat ); flat ->setModel(& flatModel); flat ->resizeColumnsToContents();
dlg.resize(1280,280);
auto layout = new QVBoxLayout(&dlg); dlg.setLayout(layout);
auto r1 = new QSplitter (&dlg); layout->addWidget(r1);
auto r2 = new QSplitter (&dlg); layout->addWidget(r2);
auto matrix = new QTableView(&dlg); r1 ->addWidget(matrix); matrix->setModel(&matrixModel); matrix->resizeColumnsToContents();
auto flat = new QTableView(&dlg); r1 ->addWidget(flat ); flat ->setModel(& flatModel); flat ->resizeColumnsToContents();
auto tree = new QTreeView (&dlg); r1 ->addWidget(tree ); tree ->setModel(& treeModel); for(int i=0; i<treeModel.columnCount(); i++) tree->resizeColumnToContents(i);
auto table = new QTableView(&dlg); r2 ->addWidget(table ); table ->setModel(& tableModel); table ->resizeColumnsToContents();
auto custom = new QTableView(&dlg); r2 ->addWidget(custom); custom->setModel(&customModel); custom->resizeColumnsToContents();
auto view = new QTreeView (&dlg); r2 ->addWidget(view ); view ->setModel(& viewModel); for(int i=0; i<viewModel.columnCount(); i++) view->resizeColumnToContents(i);
dlg.resize(960,360);
dlg.exec();
}
tests/QBind/qstandardmodel.PNG

28.1 KB | W: | H:

tests/QBind/qstandardmodel.PNG

28.1 KB | W: | H:

tests/QBind/qstandardmodel.PNG
tests/QBind/qstandardmodel.PNG
tests/QBind/qstandardmodel.PNG
tests/QBind/qstandardmodel.PNG
  • 2-up
  • Swipe
  • Onion skin
builtin> |================================================================================
builtin> |================================================================================
QDebug |1.33333 3.14159 ascii characters are common in QDebug false QColor(ARGB 1, 0.176471, 0, 0.729412)
Text |[ 1.33333 3.14159 ascii characters are common in QDebug false [ RGB:[ 45 0 186] base:255]
Text | 1.33333 3.14159 ascii characters are common in QDebug false [ RGB:[ 45 0 186] base:255]
Json |[1.33333337,3.1415926535897931,"ascii characters are common in QDebug",false,{"RGB":[45,0,186],"base":255}]
Xml |<sequence><decimal>1.33333337</decimal><decimal>3.1415926535897931</decimal><string>ascii characters are common in QDebug</string><boolean>false</boolean><record><RGB><integer>45</integer><integer>0</integer><integer>186</integer></RGB><base>255</base></record>
Variant |[ 1.33333 3.14159 ascii characters are common in QDebug false [ RGB:[ 45 0 186] base:255]]
Variant | 1.33333 3.14159 ascii characters are common in QDebug false [ RGB:[ 45 0 186] base:255]
Cbor |85fa3faaaaabfb400921fb54442d187825617363696920636861726163746572732061726520636f6d6d6f6e20696e20514465627567f4bf635247429f182d0018baff646261736518ffff
QCborStream |85fa3faaaaabfb400921fb54442d187825617363696920636861726163746572732061726520636f6d6d6f6e20696e20514465627567f4bf635247429f182d0018baff646261736518ffff
Data |3ff5555560000000400921fb54442d1800000026617363696920636861726163746572732061726520636f6d6d6f6e20696e20514465627567000001ffff2d2d0000baba0000
......@@ -12,12 +12,12 @@ QByteArray |abaaaa3f182d4454fb21094061736369692063686172616374657273206172652
Bindables |
Bindables>Cbor|85fa3faaaaabfb400921fb54442d187825617363696920636861726163746572732061726520636f6d6d6f6e20696e20514465627567f4bf635247429f182d0018baff646261736518ffff
Bindables>Json|[1.33333337,3.1415926535897931,"ascii characters are common in QDebug",false,{"RGB":[45,0,186],"base":255}]
doubles> |================================================================================
doubles> |================================================================================
QDebug |0.333333 0.666667 0.333333 1 0.666667 0.333333 0.666667 1 0.333333 0.666667 0.333333 1 0 0 0 1
Text |[ 0.333333 0.666667 0.333333 1 0.666667 0.333333 0.666667 1 0.333333 0.666667 0.333333 1 0 0 0 1]
Text | 0.333333 0.666667 0.333333 1 0.666667 0.333333 0.666667 1 0.333333 0.666667 0.333333 1 0 0 0 1
Json |[0.33333333333333331,0.66666666666666663,0.33333333333333331,1,0.66666666666666663,0.33333333333333331,0.66666666666666663,1,0.33333333333333331,0.66666666666666663,0.33333333333333331,1,0,0,0,1]
Xml |<sequence><decimal>0.33333333333333331</decimal><decimal>0.66666666666666663</decimal><decimal>0.33333333333333331</decimal><decimal>1</decimal><decimal>0.66666666666666663</decimal><decimal>0.33333333333333331</decimal><decimal>0.66666666666666663</decimal><decimal>1</decimal><decimal>0.33333333333333331</decimal><decimal>0.66666666666666663</decimal><decimal>0.33333333333333331</decimal><decimal>1</decimal><decimal>0</decimal><decimal>0</decimal><decimal>0</decimal><decimal>1</decimal></sequence>
Variant |[ 0.333333 0.666667 0.333333 1 0.666667 0.333333 0.666667 1 0.333333 0.666667 0.333333 1 0 0 0 1]
Variant | 0.333333 0.666667 0.333333 1 0.666667 0.333333 0.666667 1 0.333333 0.666667 0.333333 1 0 0 0 1
Cbor |90fb3fd5555555555555fb3fe5555555555555fb3fd5555555555555fb3ff0000000000000fb3fe5555555555555fb3fd5555555555555fb3fe5555555555555fb3ff0000000000000fb3fd5555555555555fb3fe5555555555555fb3fd5555555555555fb3ff0000000000000fb0000000000000000fb0000000000000000fb0000000000000000fb3ff0000000000000
QCborStream |90fb3fd5555555555555fb3fe5555555555555fb3fd5555555555555fb3ff0000000000000fb3fe5555555555555fb3fd5555555555555fb3fe5555555555555fb3ff0000000000000fb3fd5555555555555fb3fe5555555555555fb3fd5555555555555fb3ff0000000000000fb0000000000000000fb0000000000000000fb0000000000000000fb3ff0000000000000
Data |000000103fd55555555555553fe55555555555553fd55555555555553ff00000000000003fe55555555555553fd55555555555553fe55555555555553ff00000000000003fd55555555555553fe55555555555553fd55555555555553ff00000000000000000000000000000000000000000000000000000000000003ff0000000000000
......@@ -26,13 +26,13 @@ QByteArray |10000000555555555555d53f555555555555e53f555555555555d53f000000000
Bindable |
Bindable>Cbor |90fb3fd5555555555555fb3fe5555555555555fb3fd5555555555555fb3ff0000000000000fb3fe5555555555555fb3fd5555555555555fb3fe5555555555555fb3ff0000000000000fb3fd5555555555555fb3fe5555555555555fb3fd5555555555555fb3ff0000000000000fb0000000000000000fb0000000000000000fb0000000000000000fb3ff0000000000000
Bindable>Json |[0.33333333333333331,0.66666666666666663,0.33333333333333331,1,0.66666666666666663,0.33333333333333331,0.66666666666666663,1,0.33333333333333331,0.66666666666666663,0.33333333333333331,1,0,0,0,1]
Person> |================================================================================
Person> |================================================================================
QDebug |Person("John", "Doe", 1.75, 18, QVector(), "unicode is likely U+01 \u0001 + U+1F \u001F + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ", ())
Text |(Person)[ names:[ John Doe] height:1.75 age:18 phones:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ children:[]]
Text |(Person) names:[ John Doe] height:1.75 age:18 phones:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ children:[]
Json |{"names":["John","Doe"],"height":1.75,"age":18,"phones":[],"comments":"unicode is likely U+01 \u0001 + U+1F \u001F + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ","children":[]}
Xml |<Person><names><string>John</string><string>Doe</string></names><height>1.75</height><age>18</age><phones/><comments>unicode is likely U+01 + U+1F + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ</comments><children/></Person>
Variant |[ age:18 children:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ height:1.75 names:[ John Doe] phones:[]]
Variant | age:18 children:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ height:1.75 names:[ John Doe] phones:[]
Cbor |bf656e616d65739f644a6f686e63446f65ff66686569676874fb3ffc00000000000063616765126670686f6e65738068636f6d6d656e74737843756e69636f6465206973206c696b656c7920552b30312001202b20552b3146201f202b20552b413420c2a420552b423020c2b020552b443820c39820552b464620c3bf686368696c6472656e80ff
QCborStream |bf656e616d65739f644a6f686e63446f65ff66686569676874fb3ffc00000000000063616765126670686f6e65738068636f6d6d656e74737843756e69636f6465206973206c696b656c7920552b30312001202b20552b3146201f202b20552b413420c2a420552b423020c2b020552b443820c39820552b464620c3bf686368696c6472656e80ff
Data |00000008004a006f0068006e000000060044006f00653ffc00000000000000000012000000000000007e0075006e00690063006f006400650020006900730020006c0069006b0065006c007900200055002b00300031002000010020002b00200055002b003100460020001f0020002b00200055002b00410034002000a400200055002b00420030002000b000200055002b00440038002000d800200055002b00460046002000ff00000000
......@@ -41,12 +41,12 @@ QByteArray |4a006f0044006f000000000000fc3f120000000000000075006e00690063006f0
Bindable |
Bindable>Cbor |bf656e616d65739f644a6f686e63446f65ff66686569676874fb3ffc00000000000063616765126670686f6e65738068636f6d6d656e74737843756e69636f6465206973206c696b656c7920552b30312001202b20552b3146201f202b20552b413420c2a420552b423020c2b020552b443820c39820552b464620c3bf686368696c6472656e80ff
Bindable>Json |{"names":["John","Doe"],"height":1.75,"age":18,"phones":[],"comments":"unicode is likely U+01 \u0001 + U+1F \u001F + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ","children":[]}
Phone> |================================================================================
Phone> |================================================================================
QDebug |Phone(Phone::Home, "+44 1234567")
Text |(Phone)[ type:(Home)2 number:+44 1234567]
Text |(Phone) type:(Home)2 number:+44 1234567
Json |{"type":2,"number":"+44 1234567"}
Xml |<Phone><Home>2</Home><number>+44 1234567</number></Phone>
Variant |[ number:+44 1234567 type:2]
Variant | number:+44 1234567 type:2
Cbor |bf647479706502666e756d6265726b2b34342031323334353637ff
QCborStream |bf647479706502666e756d6265726b2b34342031323334353637ff
Data |0200000016002b0034003400200031003200330034003500360037
......@@ -55,25 +55,25 @@ QByteArray |022b34342031323334353637
Bindable |
Bindable>Cbor |bf647479706502666e756d6265726b2b34342031323334353637ff
Bindable>Json |{"type":2,"number":"+44 1234567"}
Person<>Json |================================================================================
Json>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | [ IgnoredCharacter 0:1 IgnoredCharacter 0:15 IgnoredCharacter 0:23 IgnoredCharacter 0:40 IgnoredCharacter 0:42 IgnoredCharacter 0:58 IgnoredCharacter 0:102]
P>Json |{"names":["John","Doe"],"height":1.7500000000000002,"age":-1,"phones":[],"comments":"","children":[]}
Json>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | []
P>JsonValue |{"age":-1,"children":[],"comments":"","height":1.7500000000000004,"names":["John","Doe"],"phones":[]}
JsonValue>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | []
Json>JsonValue|{"age":-1,"children":[],"comments":"","height":1.7500000000000004,"names":["John","Doe"],"phones":[]} | []
Person<>Json |================================================================================
Json>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] | IgnoredCharacter 0:1 IgnoredCharacter 0:15 IgnoredCharacter 0:23 IgnoredCharacter 0:40 IgnoredCharacter 0:42 IgnoredCharacter 0:58 IgnoredCharacter 0:102
P>Json |{"names":["John","Doe"],"height":1.75,"age":-1,"phones":[],"comments":"","children":[]}
Json>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] |
P>JsonValue |{"age":-1,"children":[],"comments":"","height":1.75,"names":["John","Doe"],"phones":[]}
JsonValue>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] |
Json>JsonValue|{"age":-1,"children":[],"comments":"","height":1.75,"names":["John","Doe"],"phones":[]} |
Json>Cbor |bf656e616d65739f644a6f686e63446f65ff66686569676874fa3fe0000063616765206670686f6e65739fff68636f6d6d656e747360686368696c6472656e9fffff
Person<>Cbor |================================================================================
Cbor>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | []
Person<>Cbor |================================================================================
Cbor>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] |
P>Cbor |bf656e616d65739f644a6f686e63446f65ff66686569676874fb3ffc00000000000063616765206670686f6e65738068636f6d6d656e747360686368696c6472656e80ff
Cbor>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | []
QCborStream>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | true
Cbor>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] |
QCborStream>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] | true
P>CborValue |a6656e616d657382644a6f686e63446f6566686569676874fb3ffc00000000000063616765206670686f6e65738068636f6d6d656e747360686368696c6472656e80
CborValue>P |(Person)[ names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[]] | []
Cbor>CborValue|{"names": ["John", "Doe"], "height": 1.75, "age": -1, "phones": [], "comments": "", "children": []} | []
CborValue>P |(Person) names:[ John Doe] height:1.75 age:-1 phones:[] comments: children:[] |
Cbor>CborValue|{"names": ["John", "Doe"], "height": 1.75, "age": -1, "phones": [], "comments": "", "children": []} |
CborValue>Cbor|a6656e616d657382644a6f686e63446f6566686569676874fb3ffc00000000000063616765206670686f6e65738068636f6d6d656e747360686368696c6472656e80
Cbor>Json |{"names":["John","Doe"],"height":1.75,"age":} | []
Person<>Settings |================================================================================
P>Settings |(Person)[ names:[ John Doe] height:1.75 age:18 phones:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ children:[]]
Settings>P |(Person)[ names:[ John Doe] height:1.75 age:18 phones:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ children:[]] | []
Cbor>Json |{"names":["John","Doe"],"height":1.75,"age":} |
Person<>Settings|================================================================================
P>Settings |(Person) names:[ John Doe] height:1.75 age:18 phones:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ children:[]
Settings>P |(Person) names:[ John Doe] height:1.75 age:18 phones:[] comments:unicode is likely U+01  + U+1F  + U+A4 ¤ U+B0 ° U+D8 Ø U+FF ÿ children:[] |
P>Settings |QBind
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment