RustCompiler

de.uni_luebeck.isp.tessla.tessla_compiler.backends.rustBackend.RustCompiler$

Invokes cargo to generate a binary artifact from Rust code.

Attributes

artifactPath

A path where the final monitor binary will be copied to.

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Value members

Concrete methods

def createCargoWorkspace(workspaceDir: Path, sourceCode: RustFiles, exportMain: Boolean): Unit

Creates a complete cargo workspace with all files necessary to expand it with your own code.

Creates a complete cargo workspace with all files necessary to expand it with your own code.

The Cargo.toml only gets written if it doesn't exist.

Attributes

exportMain

Whether the default main.rs IO interface should be created

sourceCode

The source code to be exported.

workspaceDir

The directory the workspace is put into.

def exportLibrary(destination: Path): Unit

Exports the rust library crate from resources into an external folder

Exports the rust library crate from resources into an external folder

Attributes

destination

the destination folder

def phase(artifactPath: Path, discardCargoOutput: Boolean): TesslaPhase[RustFiles, Unit]

Use cargo to compile a rust binary in a temporary directory

Use cargo to compile a rust binary in a temporary directory

Attributes

artifactPath

the output directory or file for the binary

discardCargoOutput

disables cargo compilation progress output

Concrete fields

final val ALLOWED_WARNINGS: String

A set of warnings that we know are present in the generated output Some of these are merely stylistic (variable names) and some are more interesting, but very hard to eliminate (too many parentheses, unused variables, dead code)

A set of warnings that we know are present in the generated output Some of these are merely stylistic (variable names) and some are more interesting, but very hard to eliminate (too many parentheses, unused variables, dead code)

Attributes

final val LIBRARY_NAME: "monitor_lib"
final val PACKAGE_NAME: "monitor"
final val STDLIB_NAME: "tessla_stdlib"