---
title: MTL4PipelineDataSetSerializer
framework: metal
role: symbol
role_heading: Protocol
path: metal/mtl4pipelinedatasetserializer
---

# MTL4PipelineDataSetSerializer

A fast-addition container for collecting data during pipeline state creation.

## Declaration

```swift
protocol MTL4PipelineDataSetSerializer : NSObjectProtocol
```

## Mentioned in

Using the Metal 4 compilation API

## Overview

Overview Pipeline data serializer instances allow you to create binary archives and serialize pipeline scripts to use with the offline Metal binary generator (metal-tt) doc:compiling-binary-archives-from-a-custom-configuration-script.md. You capture and retain all relevant data for all pipelines a compiler instance creates by providing an instance of this object to its MTL4CompilerDescriptor. After capturing data, you can serialize it to a binary archive to persist its contents offline by calling serializeAsArchiveAndFlush(url:). You can also serialize a pipeline script suitable for the offline binary generator (metal-tt) by calling serializeAsPipelinesScript() note: The objects MTL4PipelineDataSetSerializer contains are opaque and can’t accelerate compilation for compilers they are not attached to. Additionally, your program can’t read data out of data set serializer instances.

## Topics

### Instance Methods

- [serializeAsArchiveAndFlush(url:)](metal/mtl4pipelinedatasetserializer/serializeasarchiveandflush(url:).md)
- [serializeAsPipelinesScript()](metal/mtl4pipelinedatasetserializer/serializeaspipelinesscript().md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Pipeline harvesting

- [MTL4PipelineDataSetSerializerConfiguration](metal/mtl4pipelinedatasetserializerconfiguration.md)
- [MTL4PipelineDataSetSerializerDescriptor](metal/mtl4pipelinedatasetserializerdescriptor.md)
- [MTL4PipelineDescriptor](metal/mtl4pipelinedescriptor.md)
- [MTL4PipelineOptions](metal/mtl4pipelineoptions.md)
