Skip to main content

RustBuild

Struct RustBuild 

Source
pub struct RustBuild { /* private fields */ }
Expand description

Represents a Rust build for a specific target triple.

Implementations§

Source§

impl RustBuild

Source

pub fn new(path: impl AsRef<Path>, triple: Triple) -> Self

Create a new rust build for the given path and target triple.

Source

pub fn with_target_dir(self, target_dir: impl Into<PathBuf>) -> Self

Use an explicit Cargo target directory.

Source

pub fn with_sccache(self, sccache_path: PathBuf) -> Self

Set the sccache path for compilation caching.

When set, RUSTC_WRAPPER will be configured to use sccache, which can significantly improve incremental build times.

Source

pub fn with_feature(self, feature: impl Into<String>) -> Self

Add a Cargo feature to enable during the build.

Features are passed to cargo via --features.

Source

pub fn with_features( self, features: impl IntoIterator<Item = impl Into<String>>, ) -> Self

Add multiple Cargo features to enable during the build.

Source

pub fn features(&self) -> &[String]

Cargo features this build passes via --features.

Source

pub fn with_rustc_flag(self, flag: impl Into<String>) -> Self

Add a rustc flag to the build via RUSTFLAGS.

Source

pub fn with_final_rustc_arg(self, flag: impl Into<String>) -> Self

Add a rustc flag that applies to the final crate only.

The flag is passed as a trailing cargo rustc argument instead of through RUSTFLAGS, so dependency unit fingerprints stay identical across builds that differ only in how their final artifact links. See the field documentation on final_rustc_args for why link arguments must take this route.

Source

pub fn with_preferred_dynamic_linking(self) -> Self

Prefer dynamic Rust dependencies and emit loader search paths for them.

Source

pub fn with_linkage( self, linkage: RustLinkage, development_feature: &str, loader_search_path: Option<&str>, ) -> Self

Configure this build for the selected Rust runtime linkage.

A shared-runtime development build enables the project’s dev feature (which resolves the shared waterui-dylib runtime), prefers dynamic linking, and — when the platform’s loader needs one — embeds a loader search path into the final artifact only. A static packaging build needs none of this.

Source

pub fn with_crate_type_override(self, crate_type: impl Into<String>) -> Self

Override the library crate type passed to rustc.

Source

pub fn with_env( self, key: impl Into<String>, value: impl Into<OsString>, ) -> Self

Add an environment variable for the cargo build process.

Source

pub fn with_envs( self, envs: impl IntoIterator<Item = (String, OsString)>, ) -> Self

Add multiple environment variables for the cargo build process.

Source

pub const fn triple(&self) -> &Triple

Get the target triple for this build.

Source

pub async fn dev_build(&self) -> Result<PathBuf, RustBuildError>

Build rust library in development mode.

Will produce debug symbols and less optimizations for faster builds.

Return the path to the built library.

§Errors
  • RustBuildError::FailToExecuteCargoBuild: If there was an error executing the cargo build command.
  • RustBuildError::FailToBuildRustLibrary: If there was an error building the Rust library.
Source

pub async fn release_build(&self) -> Result<PathBuf, RustBuildError>

Build rust library in release mode.

Return the directory path containing the built library.

§Errors
  • RustBuildError::FailToExecuteCargoBuild: If there was an error executing the cargo build command.
  • RustBuildError::FailToBuildRustLibrary: If there was an error building the Rust library.
Source

pub async fn build_lib(&self, release: bool) -> Result<PathBuf, RustBuildError>

Build a library with the specified crate type.

Return the directory path containing the built library.

§Errors
  • RustBuildError::FailToExecuteCargoBuild: If there was an error executing the cargo build command.
  • RustBuildError::FailToBuildRustLibrary: If there was an error building the Rust library.
Source

pub async fn build_dylib( &self, crate_name: &str, release: bool, ) -> Result<PathBuf, RustBuildError>

Build a dynamic library (cdylib) and return the full path to the dylib file.

This is a convenience method that builds the library and computes the full path to the resulting dylib file based on the crate name and target triple.

§Errors
  • RustBuildError::FailToExecuteCargoBuild: If there was an error executing the cargo build command.
  • RustBuildError::FailToBuildRustLibrary: If the library was not found after building.
Source

pub async fn build_binary( &self, binary_name: &str, release: bool, ) -> Result<PathBuf, RustBuildError>

Builds one named binary and returns its full output path.

§Errors

Returns an error when Cargo fails or the expected binary is missing.

Source

pub async fn dylib_path( &self, crate_name: &str, release: bool, ) -> Result<PathBuf, RustBuildError>

Compute the expected dylib output path without building.

This uses cargo metadata to resolve the target directory to avoid assuming a fixed target/ path.

§Errors

Returns an error if Cargo metadata cannot be read.

Source

pub async fn lib_output_dir( &self, release: bool, ) -> Result<PathBuf, RustBuildError>

Resolve the Cargo library artifact directory for this build target and profile.

§Errors

Returns an error if Cargo metadata cannot be read for this build target.

Trait Implementations§

Source§

impl Clone for RustBuild

Source§

fn clone(&self) -> RustBuild

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RustBuild

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<U, T> ToOwnedObj<U> for T
where U: FromObjRef<T>,

Source§

fn to_owned_obj(&self, data: FontData<'_>) -> U

Convert this type into T, using the provided data to resolve any offsets.
Source§

impl<U, T> ToOwnedTable<U> for T
where U: FromTableRef<T>,

Source§

fn to_owned_table(&self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more