# CompilationJob

Struct in [Yarn.Compiler](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler)

Inherits from `System.ValueType`

## Summary

An object that contains Yarn source code to compile, and instructions on how to compile it.

```csharp
public struct CompilationJob
```

## Remarks

Instances of this struct are used with [Compile(CompilationJob)](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compiler/yarn.compiler.compiler.compile) to produce [CompilationResult](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationresult) objects.

## Enums

| Name                                                                                                                             | Description                                        |
| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [Type](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.type) | The type of compilation that the compiler will do. |

## Fields

| Name                                                                                                                                                             | Description                                                                                                                                                                          |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [CompilationType](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.compilationtype)           | The type of compilation to perform.                                                                                                                                                  |
| [Files](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.files)                               | The [File](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.file) structs that represent the content to parse..   |
| [Library](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.library)                           | The [Library](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.library) that contains declarations for functions. |
| [VariableDeclarations](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.variabledeclarations) | The declarations for variables.                                                                                                                                                      |

## Methods

| Name                                                                                                                                                                            | Description                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CreateFromFiles(IEnumerable,Library)](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.createfromfiles-1)   | Creates a new [CompilationJob](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob) using the contents of a collection of files. |
| [CreateFromFiles(string\[\])](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.createfromfiles-2)            | Creates a new [CompilationJob](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob) using the contents of a collection of files. |
| [CreateFromString(string,string,Library)](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.createfromstring) | Creates a new [CompilationJob](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob) using the contents of a string.              |

## Structs

| Name                                                                                                                             | Description                                   |
| -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| [File](https://docs.yarnspinner.dev/2.1/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.file) | Represents the contents of a file to compile. |
