cargo_airbender/commands/new/
profiles.rs1use crate::cli::NewProverBackendArg;
2
3const HOST_MAIN_DEV_TEMPLATE: &str =
4 include_str!("../../../templates/host/src/main.dev.rs.template");
5const HOST_MAIN_GPU_TEMPLATE: &str =
6 include_str!("../../../templates/host/src/main.gpu.rs.template");
7const README_BACKEND_DEV_DOC: &str =
8 include_str!("../../../templates/snippets/prover_backend.dev.md.template");
9const README_BACKEND_GPU_DOC: &str =
10 include_str!("../../../templates/snippets/prover_backend.gpu.md.template");
11
12#[derive(Clone, Copy)]
13pub(super) struct ProverBackendProfile {
14 pub(super) host_dependency_features: &'static str,
15 pub(super) host_main_template: &'static str,
16 pub(super) readme_prover_backend_doc: &'static str,
17 pub(super) host_run_command: &'static str,
18}
19
20pub(super) fn prover_backend_profile(backend: NewProverBackendArg) -> ProverBackendProfile {
21 match backend {
22 NewProverBackendArg::Dev => ProverBackendProfile {
23 host_dependency_features: ", default-features = false",
24 host_main_template: HOST_MAIN_DEV_TEMPLATE,
25 readme_prover_backend_doc: README_BACKEND_DEV_DOC,
26 host_run_command: "cd ../host && cargo run --release",
27 },
28 NewProverBackendArg::Gpu => ProverBackendProfile {
29 host_dependency_features: "",
30 host_main_template: HOST_MAIN_GPU_TEMPLATE,
31 readme_prover_backend_doc: README_BACKEND_GPU_DOC,
32 host_run_command: "cd ../host && ZKSYNC_USE_CUDA_STUBS=true cargo run --release",
33 },
34 }
35}