assemble_rust/cargo/
build.rs1use crate::cargo::Target;
4use crate::extensions::RustPluginExtension;
5use crate::prelude::*;
6use crate::toolchain::Toolchain;
7use assemble_core::lazy_evaluation::{Prop, VecProp};
8use assemble_core::plugins::extensions::ExtensionAware;
9use assemble_core::project::error::ProjectResult;
10use assemble_core::task::initialize_task::InitializeTask;
11use assemble_core::task::up_to_date::UpToDate;
12
13#[derive(Debug, CreateTask, TaskIO)]
15pub struct CargoFmt {
16 pub toolchain: Prop<Toolchain>,
18 pub targets: VecProp<Target>,
20}
21
22impl InitializeTask for CargoFmt {
23 fn initialize(task: &mut Executable<Self>, project: &Project) -> ProjectResult {
24 let ext = project.extension::<RustPluginExtension>().unwrap();
25 task.toolchain.set_with(ext.toolchain.clone())?;
26 Ok(())
27 }
28}
29
30impl UpToDate for CargoFmt {}
31
32impl Task for CargoFmt {
33 fn task_action(_task: &mut Executable<Self>, _project: &Project) -> BuildResult {
34 todo!()
35 }
36}