> For the complete documentation index, see [llms.txt](https://docs.yarnspinner.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yarnspinner.dev/api/csharp/yarn.compiler/yarn.compiler.compilationjob.md).

# CompilationJob

Struct in [Yarn.Compiler](/api/csharp/yarn.compiler.md)

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)](/api/csharp/yarn.compiler/yarn.compiler.compiler/yarn.compiler.compiler.compile.md) to produce [CompilationResult](/api/csharp/yarn.compiler/yarn.compiler.compilationresult.md) objects.

## Enums

| Name                                                                                                | Description                                        |
| --------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [Type](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.type.md) | The type of compilation that the compiler will do. |

## Fields

| Name                                                                                                                      | Description                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CompilationType](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.compilationtype.md) | The type of compilation to perform.                                                                                                                     |
| [Declarations](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.declarations.md)       | The declarations for variables and functions.                                                                                                           |
| [Files](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.files.md)                     | The [File](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.file.md) structs that represent the content to parse..   |
| [Library](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.library.md)                 | The [Library](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.library.md) that contains declarations for functions. |

## Methods

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

## Properties

| Name                                                                                                                                | Description                                                                                                           |
| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| [CancellationToken](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.cancellationtoken.md)       | A cancellation token that can be used to signal that the compilation should be cancelled.                             |
| [LanguageVersion](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.languageversion.md)           | Gets or sets the version of the Yarn language.                                                                        |
| [TypeDeclarations](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.typedeclarations.md)         | The collection of type declarations that should be imported and made available to the compiler, prior to compilation. |
| [VariableDeclarations](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.variabledeclarations.md) | The declarations for variables.                                                                                       |

## Structs

| Name                                                                                                | Description                                   |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| [File](/api/csharp/yarn.compiler/yarn.compiler.compilationjob/yarn.compiler.compilationjob.file.md) | Represents the contents of a file to compile. |
