namespace Nz { template bool Serialize(SerializationContext& context, const AssetDescriptor& descriptor, TypeTag>) { 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 bool Unserialize(SerializationContext& context, AssetDescriptor* descriptor, TypeTag>) { if (!Unserialize(context, "version", &descriptor->version)) return false; if (!Unserialize(context, "type", &descriptor->type)) return false; if (AssetDescriptor::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; } }