RustCompiler

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

Invokes cargo to generate a binary artifact from Rust code.

Value parameters

artifactPath

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

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.

Value parameters

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.

Attributes

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

Value parameters

destination

the destination folder

Attributes

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

Value parameters

artifactPath

the output directory or file for the binary

discardCargoOutput

disables cargo compilation progress output

Attributes

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"