Skip to main content

CargoTool

Struct CargoTool 

Source
pub struct CargoTool {
    pub binary_name: String,
    pub cdylib_name: Option<String>,
}
Expand description

Cargo metadata and build helper for routine projects.

Discovers the first bin and optional cdylib target via cargo metadata --no-deps, then wraps cargo check, cargo build, and cdylib artifact relocation.

For installing routines into the cotis-cli cache, prefer install::install which uses workspace-aware metadata and cargo build --lib.

Fields§

§binary_name: String

Name of the first bin target from cargo metadata.

§cdylib_name: Option<String>

Name of the first cdylib target, if any.

Implementations§

Source§

impl CargoTool

Source

pub fn new() -> Result<CargoTool, ()>

Discover Cargo targets in the current working directory’s workspace.

Runs cargo metadata --no-deps and returns the first bin target name and optional cdylib target name.

§Errors

Returns Err(()) if cargo metadata fails, JSON parsing fails, or no bin target exists. Error details are not preserved; check stderr from the cargo invocation.

Source

pub fn check(&self) -> Result<bool>

Run cargo check in the current directory.

§Errors

Returns an I/O error if spawning cargo fails.

Returns Ok(false) if cargo check exits non-zero.

Source

pub fn build( &self, out_dir: &Path, release: bool, out_file: &Path, ) -> Result<bool>

Build the project into out_dir and move the bin artifact to out_file.

Runs cargo build --target-dir <out_dir> with optional --release, then renames the built executable (appending .exe on Windows).

§Errors

Returns an I/O error if spawning cargo, creating directories, or renaming fails.

Returns Ok(false) if out_dir does not exist, or if cargo build exits non-zero.

Source

pub fn build_cdylib( &self, out_dir: &Path, release: bool, out_file: &Path, ) -> Result<bool>

Build the project’s cdylib into out_dir and move the library to out_file.

Requires Self::cdylib_name to be Some. Uses cdylib_filename for the source path under <out_dir>/<profile>/.

§Errors

Returns an I/O error if spawning cargo, creating directories, or renaming fails.

Returns Ok(false) if out_dir does not exist, no cdylib target was found, or cargo build exits non-zero.

Trait Implementations§

Source§

impl Debug for CargoTool

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> 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<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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