38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
namespace Nz
|
|
{
|
|
template <typename TResource>
|
|
bool Serialize(SerializationContext& context, const AssetDescriptor<TResource>& descriptor, TypeTag<AssetDescriptor<TResource>>)
|
|
{
|
|
Serialize(context, "version", descriptor.version);
|
|
Serialize(context, "type", descriptor.type);
|
|
Serialize(context, "name", descriptor.name);
|
|
Serialize(context, "path", descriptor.path);
|
|
Serialize(context, "parameters", descriptor.parameters);
|
|
return true;
|
|
}
|
|
|
|
template <typename TResource>
|
|
bool Unserialize(SerializationContext& context, AssetDescriptor<TResource>* descriptor, TypeTag<AssetDescriptor<TResource>>)
|
|
{
|
|
if (!Unserialize(context, "version", &descriptor->version))
|
|
return false;
|
|
|
|
if (!Unserialize(context, "type", &descriptor->type))
|
|
return false;
|
|
|
|
if (AssetDescriptor<TResource>::Type != descriptor->type)
|
|
return false;
|
|
|
|
if (!Unserialize(context, "name", &descriptor->name))
|
|
return false;
|
|
|
|
if (!Unserialize(context, "path", &descriptor->path))
|
|
return false;
|
|
|
|
if (!Unserialize(context, "parameters", &descriptor->parameters))
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
}
|