//! QMetaData is optional data about current data to enable optimized processing (e.g. tag, , style, etc.) and/or transmission (QAbstractItemModel headers, CBOR tags, XML attribute, CSS, numpy.ndarray shapes, etc.)
template<typenameT>structBindSupport<T,QDataWriter>:BindNative{};//!< \remark Use meta() or QVariant to encapsulate Ts that are not statically known (provided qRegisterMetaType<T>() and qRegisterMetaTypeStreamOperators<T>() are called)
structStep{intindex;constchar*end;QMap<QUtf8String,QJsonValue/*TODO QVariant for meta() support*/>cachedItems;Step(inti=-1,constchar*e=nullptr):index(i),end(e){}};
structStep{intindex;constchar*end;QMap<QIdentifier,QJsonValue/*TODO QVariant for meta() support*/>cachedItems;Step(inti=-1,constchar*e=nullptr):index(i),end(e){}};
caching=&cacheReader;// let outer Cursor drive QJsonReader depending on bound T
...
...
@@ -331,7 +331,7 @@ protected:
elseif(!_item(s)){// record() end reached
returnfalse;
}
elseif(u==s){
elseif(u==s.constData()){
returntrue;
}
else{// read cachedValue using a dedicated Cursor and QBind<Val<Cursor>> accepting value of any 'shape' (outer QBind is specialized on outer T which is not usually generic enough)
introw=0,col=0;//!< Allows handling {null} equally to {} (but not equally to null) without requiring QModelIndex to reference rows/columns before they actually exist