Dagger
Search

rust

A swiss army knife of functions for working with Rust projects.

Installation

dagger install github.com/purpleclay/daggerverse/rust@v0.2.0

Entrypoint

Return Type
Rust !
Arguments
NameTypeDescription
baseContainer a custom base image containing an installation of rust. If no image is provided the `rust:<LATEST_TAG>-alpine3.20` will be used. The default image will use musl to support static compilation of Rust binaries. It comes bundled with the following packages: `cmake`, `build-base`, `libressl-dev`, `musl-dev`, `perl`, and `pkgconfig`
srcDirectory !a path to a directory containing the projects source code
Example
func (m *myModule) example(src *Directory) *Rust  {
	return dag.
			Rust(src)
}
@function
def example(src: dagger.Directory) -> dag.Rust:
	return (
		dag.rust(src)
	)
@func()
example(src: Directory): Rust {
	return dag
		.rust(src)
}

Types

Rust 🔗

Rust dagger module

clippy() 🔗

Lint your Rust project with Clippy to detect common mistakes and to improve your Rust code

Return Type
String !
Arguments
NameTypeDefault ValueDescription
noDepsBoolean -run clippy on the current crate only and not against its dependencies
Example
func (m *myModule) example(ctx context.Context, src *Directory) string  {
	return dag.
			Rust(src).
			Clippy(ctx)
}
@function
async def example(src: dagger.Directory) -> str:
	return await (
		dag.rust(src)
		.clippy()
	)
@func()
async example(src: Directory): Promise<string> {
	return dag
		.rust(src)
		.clippy()
}

format() 🔗

Format the code in your Rust project using Rustfmt

Return Type
Directory !
Example
func (m *myModule) example(src *Directory) *Directory  {
	return dag.
			Rust(src).
			Format()
}
@function
def example(src: dagger.Directory) -> dagger.Directory:
	return (
		dag.rust(src)
		.format()
	)
@func()
example(src: Directory): Directory {
	return dag
		.rust(src)
		.format()
}

formatCheck() 🔗

Checks the format of the code in your Rust project using Rustfmt. Fails if any formatting issues are detected

Return Type
String !
Example
func (m *myModule) example(ctx context.Context, src *Directory) string  {
	return dag.
			Rust(src).
			FormatCheck(ctx)
}
@function
async def example(src: dagger.Directory) -> str:
	return await (
		dag.rust(src)
		.format_check()
	)
@func()
async example(src: Directory): Promise<string> {
	return dag
		.rust(src)
		.formatCheck()
}