Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group type parameters into CmdCtxTypes. #177

Merged
merged 67 commits into from
Jan 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
92c0510
Add `CmdCtxTypeParams` trait.
azriel91 Jan 11, 2024
095ec58
Add `value_traits` crate with `AppError` trait.
azriel91 Jan 11, 2024
9398f60
Add `CmdCtxTypeParamsConstrained`.
azriel91 Jan 11, 2024
195e062
Use single `ParamsKeys` type instead of flattening it for now.
azriel91 Jan 11, 2024
203cdf7
Do a string find/replace for type parameters with `CmdCtxTypeParams`.
azriel91 Jan 14, 2024
9256899
Add `Scope` type param to `CmdCtxTypeParams`.
azriel91 Jan 14, 2024
8f221d0
Add supertrait constrait on `CmdCtxTypeParamsConstrained`.
azriel91 Jan 14, 2024
881cd26
Add `CmdCtxTypeParamsConstrained` blanket implementation for `T: CmdC…
azriel91 Jan 14, 2024
0e33ca3
Fix `*_params` methods in `SingleProfileSingleFlow`.
azriel91 Jan 14, 2024
68ef039
Replace `&'view mut O` with `&'view mut CmdCtxTypeParamsT::Output`.
azriel91 Jan 14, 2024
f6f1485
Fix type reference to `*ParamsKey` in `SingleProfileSingleFlow` scope.
azriel91 Jan 14, 2024
3409246
Fix type parameters in all scopes.
azriel91 Jan 14, 2024
e7da1c8
Fix type parameters in `CmdCtx` and `CmdCtxBuilder`.
azriel91 Jan 14, 2024
9fa0bc7
Fix `E` type parameter in `FlowSelection`.
azriel91 Jan 14, 2024
6ef67af
Add `CmdCtxBuilderTypeParams` and use it in `scope_struct.rs`.
azriel91 Jan 14, 2024
140b43f
Remove `marker` field from scope struct builders.
azriel91 Jan 14, 2024
aaa90e2
Update `impl_with_param` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 17, 2024
0eb8bf5
Temporarily disable `with_param_key_unknown` tokens.
azriel91 Jan 17, 2024
9fc0757
Update `impl_with_profile` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 17, 2024
0776bb5
Update `struct_definition.rs` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 18, 2024
47ab902
Update `impl_with_profile_filter.rs` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 18, 2024
5d42cd7
Update `impl_with_flow.rs` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 19, 2024
070fccb
Update `impl_constructor.rs` to use `CmdCtxBuilderTypeParamsCollector`.
azriel91 Jan 19, 2024
157fdc6
Update `impl_common_fns.rs` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 19, 2024
9793a9e
Extract common functions to `with_param.rs`.
azriel91 Jan 19, 2024
bdc4ca4
Update `impl_with_params_k` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 19, 2024
d2a2573
Remove unused functions.
azriel91 Jan 19, 2024
121eb70
Implement `CmdCtxBuilderTypeParams` for `CmdCtxBuilderTypeParamsColle…
azriel91 Jan 19, 2024
287c30b
Adjust trait bounds on `ParamsKeys` and `CmdCtxBuilderTypeParams`.
azriel91 Jan 19, 2024
b9889b6
Remove `Scope` associated type from `CmdCtxTypeParams`.
azriel91 Jan 19, 2024
61236ad
Add `CmdCtxTypeParamsCollector`.
azriel91 Jan 19, 2024
bbdb9c0
Attempt to update `impl_build.rs` using `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 20, 2024
b1cfad8
Partial update of `impl_build.rs` to use concrete `CmdCtxBuilderTypeP…
azriel91 Jan 20, 2024
f8c0f78
Allow `params_keys` path to be overridden in `CmdCtxBuilderReturnType…
azriel91 Jan 20, 2024
93b1e0b
Update `impl_params_merge.rs` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 20, 2024
fa2ca3a
Update `impl_params_deserialize.rs` to use `CmdCtxBuilderTypeParamsT`.
azriel91 Jan 20, 2024
a800f48
Remove `marker` from `NoProfileNoFlow`.
azriel91 Jan 20, 2024
76ef729
Add `ParamsKeys` bound on `CmdCtxTypeParams::ParamsKeys`.
azriel91 Jan 20, 2024
fa1a08c
Update `impl_with_flow.rs` to use concrete type.
azriel91 Jan 20, 2024
33596f2
Rename `CmdCtxBuilderReturnTypeBuilder` to `CmdCtxBuilderTypeBuilder`.
azriel91 Jan 20, 2024
c6dac82
Add `ImplHeaderBuilder`.
azriel91 Jan 20, 2024
d62872e
Rename `CmdCtxBuilderTypeBuilder::with_*_params_k` to `*_maybe`.
azriel91 Jan 20, 2024
9d409e5
Update all `impl_*.rs` to use `CmdCtxBuilderTypeParamsCollector`.
azriel91 Jan 22, 2024
29d7c42
Reduce constraints on initializing a scope builder.
azriel91 Jan 22, 2024
34477cd
Update `*CmdBlock`s and `*Cmd`s to use `CmdCtxTypeParamsT`.
azriel91 Jan 24, 2024
f497da9
Correctly implement `impl_params_deserialize`.
azriel91 Jan 25, 2024
87ab5d2
Swap order of `AppError` and `Output` type parameters.
azriel91 Jan 25, 2024
7f672f6
Fix a lot of `code_gen` to do with multi profile scopes.
azriel91 Jan 25, 2024
9e94b9c
Update `workspace_tests` to use `PeaceCmdCtxTypeParams`.
azriel91 Jan 26, 2024
fda6efd
Reduce `'static` constraint on `OutputWrite`.
azriel91 Jan 26, 2024
e2f9102
Fix type parameter bounds when `"output_progress"` is enabled.
azriel91 Jan 26, 2024
cb6c8f9
Try fix `CmdCtxTypeParams` lifetime issue with split `CmdCtxTypeParam…
azriel91 Jan 27, 2024
84681c8
Revert "Try fix `CmdCtxTypeParams` lifetime issue with split `CmdCtxT…
azriel91 Jan 27, 2024
2ec16cf
Add `'ctx` bound to `CmdCtxTypeParams` in `CmdExecution*` types.
azriel91 Jan 27, 2024
703c85e
Propagate `'ctx` lifetime through `*Cmd`s.
azriel91 Jan 27, 2024
56c48f7
Correctly restrict `CmdCtxTypeParams`' lifetime.
azriel91 Jan 27, 2024
88ca35e
Update `debug` test assertions to use `PeaceCmdCtxTypeParams`.
azriel91 Jan 27, 2024
a8f9b20
Fix `params_map` population for no / single profile scopes.
azriel91 Jan 27, 2024
8b3ad3d
Fix `profile_to_profile/flow_params` scope builder value.
azriel91 Jan 28, 2024
9e0fcc6
Address clippy lints.
azriel91 Jan 28, 2024
99482b5
Rename `CmdCtxTypeParams` to `CmdCtxTypes`.
azriel91 Jan 28, 2024
c53e191
Add more trait bounds on `OutputWrite`.
azriel91 Jan 28, 2024
f7e41cb
Update `envman` to use `CmdCtxTypes` type parameter.
azriel91 Jan 28, 2024
266d3cd
Update `download` to use `CmdCtxTypes` type parameter.
azriel91 Jan 28, 2024
1359a28
Update `CHANGELOG.md`.
azriel91 Jan 28, 2024
4f75da0
Update dependency versions.
azriel91 Jan 28, 2024
4db241a
Update `envman` to work with latest `leptos`.
azriel91 Jan 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@
* Remove requirement to import `peace::cfg::FlowId` when using `flow_id!("..")` macro. ([#157], [#176])
* Remove requirement to import `peace::cfg::ItemId` when using `item_id!("..")` macro. ([#157], [#176])
* Remove requirement to import `peace::cfg::Profile` when using `profile!("..")` macro. ([#157], [#176])
* Add `CmdCtxTypes` to group error, output, and params keys into one type parameter. ([#166], [#177])


[#172]: https://github.com/azriel91/peace/issues/172
[#173]: https://github.com/azriel91/peace/pull/173
[#157]: https://github.com/azriel91/peace/issues/157
[#176]: https://github.com/azriel91/peace/pull/176
[#166]: https://github.com/azriel91/peace/issues/166
[#177]: https://github.com/azriel91/peace/pull/177


## 0.0.12 (2023-12-30)
Expand Down
21 changes: 11 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ peace_rt_model_hack = { path = "crate/rt_model_hack", version = "0.0.12" }
peace_rt_model_native = { path = "crate/rt_model_native", version = "0.0.12" }
peace_rt_model_web = { path = "crate/rt_model_web", version = "0.0.12" }
peace_static_check_macros = { path = "crate/static_check_macros", version = "0.0.12" }
peace_value_traits = { path = "crate/value_traits", version = "0.0.12" }

# Item crates
peace_items = { path = "items", version = "0.0.12" }
Expand All @@ -107,11 +108,11 @@ peace_item_tar_x = { path = "items/tar_x", version = "0.0.12" }
# This does not include examples' dependencies, because we want it to be easy for
# developers to see the dependencies to create an automation tool.
async-trait = "0.1.77"
base64 = "0.21.5"
base64 = "0.21.7"
bytes = "1.5.0"
cfg-if = "1.0.0"
chrono = { version = "0.4.31", default-features = false, features = ["clock", "serde"] }
console = "0.15.7"
chrono = { version = "0.4.33", default-features = false, features = ["clock", "serde"] }
console = "0.15.8"
derivative = "2.2.0"
diff-struct = "0.5.3"
downcast-rs = "1.2.0"
Expand All @@ -124,19 +125,19 @@ heck = "0.4.1"
indexmap = "2.1.0"
indicatif = "0.17.7"
interruptible = "0.2.1"
libc = "0.2.151"
libc = "0.2.152"
miette = "5.10.0"
pretty_assertions = "1.4.0"
proc-macro2 = "1.0.75"
proc-macro2 = "1.0.78"
quote = "1.0.35"
raw_tty = "0.1.0"
reqwest = "0.11.23"
resman = "0.17.0"
serde = "1.0.194"
serde = "1.0.196"
serde-wasm-bindgen = "0.6.3"
serde_json = "1.0.110"
serde_json = "1.0.112"
serde_yaml = "0.9.30"
syn = "2.0.47"
syn = "2.0.48"
tar = "0.4.40"
tempfile = "3.9.0"
thiserror = "1.0.56"
Expand All @@ -145,5 +146,5 @@ tokio-util = "0.7.10"
tynm = "0.1.9"
type_reg = { version = "0.7.0", features = ["debug", "untagged", "ordered"] }
url = "2.5.0"
wasm-bindgen = "0.2.89"
web-sys = "0.3.66"
wasm-bindgen = "0.2.90"
web-sys = "0.3.67"
1 change: 1 addition & 0 deletions crate/cmd/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ peace_core = { workspace = true }
peace_params = { workspace = true }
peace_resources = { workspace = true }
peace_rt_model = { workspace = true }
peace_value_traits = { workspace = true }
serde = { workspace = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
Expand Down
11 changes: 10 additions & 1 deletion crate/cmd/src/ctx.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
//! Types relating to command context.

pub use self::{cmd_ctx::CmdCtx, cmd_ctx_builder::CmdCtxBuilder};
pub use self::{
cmd_ctx::CmdCtx,
cmd_ctx_builder::CmdCtxBuilder,
cmd_ctx_builder_types::{
CmdCtxBuilderTypes, CmdCtxBuilderTypesCollector, CmdCtxTypesCollectorEmpty,
},
cmd_ctx_types::{CmdCtxTypes, CmdCtxTypesCollector, CmdCtxTypesConstrained},
};

mod cmd_ctx;
mod cmd_ctx_builder;
mod cmd_ctx_builder_types;
mod cmd_ctx_types;
95 changes: 28 additions & 67 deletions crate/cmd/src/ctx/cmd_ctx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,21 @@
use std::ops::{Deref, DerefMut};

use peace_resources::Resources;
use peace_rt_model::{
params::{KeyUnknown, ParamsKeys, ParamsKeysImpl},
Workspace,
};
use peace_rt_model::Workspace;

use crate::{
ctx::{
cmd_ctx_builder::{
MultiProfileNoFlowBuilder, MultiProfileSingleFlowBuilder, NoProfileNoFlowBuilder,
SingleProfileNoFlowBuilder, SingleProfileSingleFlowBuilder,
},
CmdCtxBuilder,
},
scopes::{
type_params::{
FlowNotSelected, FlowParamsNone, ProfileNotSelected, ProfileParamsNone,
WorkspaceParamsNone,
},
SingleProfileSingleFlow,
CmdCtxBuilder, CmdCtxTypes,
},
scopes::SingleProfileSingleFlow,
};

use super::CmdCtxTypesCollectorEmpty;

/// Information needed to execute a command.
///
/// Importantly, as commands have different purposes, different command scopes
Expand All @@ -50,108 +43,76 @@

impl CmdCtx<()> {
/// Returns a `CmdCtxBuilder` for a single profile and no flow.
pub fn builder_no_profile_no_flow<'ctx, E, O>(
output: &'ctx mut O,
pub fn builder_no_profile_no_flow<'ctx, AppError, Output>(
output: &'ctx mut Output,
workspace: &'ctx Workspace,
) -> CmdCtxBuilder<
'ctx,
O,
NoProfileNoFlowBuilder<
E,
ParamsKeysImpl<KeyUnknown, KeyUnknown, KeyUnknown>,
WorkspaceParamsNone,
>,
CmdCtxTypesCollectorEmpty<AppError, Output>,
NoProfileNoFlowBuilder<CmdCtxTypesCollectorEmpty<AppError, Output>>,
> {
CmdCtxBuilder::no_profile_no_flow(output, workspace)
}

/// Returns a `CmdCtxBuilder` for multiple profiles and no flow.
pub fn builder_multi_profile_no_flow<'ctx, E, O>(
output: &'ctx mut O,
pub fn builder_multi_profile_no_flow<'ctx, AppError, Output>(
output: &'ctx mut Output,
workspace: &'ctx Workspace,
) -> CmdCtxBuilder<
'ctx,
O,
MultiProfileNoFlowBuilder<
E,
ProfileNotSelected,
ParamsKeysImpl<KeyUnknown, KeyUnknown, KeyUnknown>,
WorkspaceParamsNone,
ProfileParamsNone,
>,
CmdCtxTypesCollectorEmpty<AppError, Output>,
MultiProfileNoFlowBuilder<CmdCtxTypesCollectorEmpty<AppError, Output>>,
> {
CmdCtxBuilder::multi_profile_no_flow(output, workspace)
}

/// Returns a `CmdCtxBuilder` for multiple profiles and one flow.
pub fn builder_multi_profile_single_flow<'ctx, E, O>(
output: &'ctx mut O,
pub fn builder_multi_profile_single_flow<'ctx, AppError, Output>(
output: &'ctx mut Output,
workspace: &'ctx Workspace,
) -> CmdCtxBuilder<
'ctx,
O,
MultiProfileSingleFlowBuilder<
E,
ProfileNotSelected,
FlowNotSelected,
ParamsKeysImpl<KeyUnknown, KeyUnknown, KeyUnknown>,
WorkspaceParamsNone,
ProfileParamsNone,
FlowParamsNone,
>,
CmdCtxTypesCollectorEmpty<AppError, Output>,
MultiProfileSingleFlowBuilder<CmdCtxTypesCollectorEmpty<AppError, Output>>,
> {
CmdCtxBuilder::multi_profile_single_flow(output, workspace)
}

/// Returns a `CmdCtxBuilder` for a single profile and flow.
pub fn builder_single_profile_no_flow<'ctx, E, O>(
output: &'ctx mut O,
pub fn builder_single_profile_no_flow<'ctx, AppError, Output>(
output: &'ctx mut Output,
workspace: &'ctx Workspace,
) -> CmdCtxBuilder<
'ctx,
O,
SingleProfileNoFlowBuilder<
E,
ProfileNotSelected,
ParamsKeysImpl<KeyUnknown, KeyUnknown, KeyUnknown>,
WorkspaceParamsNone,
ProfileParamsNone,
>,
CmdCtxTypesCollectorEmpty<AppError, Output>,
SingleProfileNoFlowBuilder<CmdCtxTypesCollectorEmpty<AppError, Output>>,
> {
CmdCtxBuilder::single_profile_no_flow(output, workspace)
}

/// Returns a `CmdCtxBuilder` for a single profile and flow.
pub fn builder_single_profile_single_flow<'ctx, E, O>(
output: &'ctx mut O,
pub fn builder_single_profile_single_flow<'ctx, AppError, Output>(
output: &'ctx mut Output,
workspace: &'ctx Workspace,
) -> CmdCtxBuilder<
'ctx,
O,
SingleProfileSingleFlowBuilder<
E,
ProfileNotSelected,
FlowNotSelected,
ParamsKeysImpl<KeyUnknown, KeyUnknown, KeyUnknown>,
WorkspaceParamsNone,
ProfileParamsNone,
FlowParamsNone,
>,
CmdCtxTypesCollectorEmpty<AppError, Output>,
SingleProfileSingleFlowBuilder<CmdCtxTypesCollectorEmpty<AppError, Output>>,
> {
CmdCtxBuilder::single_profile_single_flow(output, workspace)
}
}

impl<'ctx, E, O, PKeys, ResTs0> CmdCtx<SingleProfileSingleFlow<'ctx, E, O, PKeys, ResTs0>>
impl<'ctx, CmdCtxTypesT, ResTs0> CmdCtx<SingleProfileSingleFlow<'ctx, CmdCtxTypesT, ResTs0>>
where
PKeys: ParamsKeys + 'static,
CmdCtxTypesT: CmdCtxTypes,
{
/// Updates `resources` to a different type state based on the given
/// function.
pub fn resources_update<ResTs1, F>(
self,
f: F,
) -> CmdCtx<SingleProfileSingleFlow<'ctx, E, O, PKeys, ResTs1>>
) -> CmdCtx<SingleProfileSingleFlow<'ctx, CmdCtxTypesT, ResTs1>>

Check warning on line 115 in crate/cmd/src/ctx/cmd_ctx.rs

View check run for this annotation

Codecov / codecov/patch

crate/cmd/src/ctx/cmd_ctx.rs#L115

Added line #L115 was not covered by tests
where
F: FnOnce(Resources<ResTs0>) -> Resources<ResTs1>,
{
Expand Down
27 changes: 16 additions & 11 deletions crate/cmd/src/ctx/cmd_ctx_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ use peace_resources::{
use peace_rt_model::{
fn_graph::resman::Resource,
params::{FlowParams, ProfileParams, WorkspaceParams},
Error, Flow, ItemGraph, ParamsSpecsSerializer, ParamsSpecsTypeReg, StatesTypeReg, Storage,
Workspace, WorkspaceInitializer,
Flow, ItemGraph, ParamsSpecsSerializer, ParamsSpecsTypeReg, StatesTypeReg, Storage, Workspace,
WorkspaceInitializer,
};
use serde::{de::DeserializeOwned, Serialize};

Expand All @@ -28,6 +28,8 @@ pub use self::{
single_profile_single_flow_builder::SingleProfileSingleFlowBuilder,
};

use crate::ctx::CmdCtxBuilderTypes;

mod multi_profile_no_flow_builder;
mod multi_profile_single_flow_builder;
mod no_profile_no_flow_builder;
Expand All @@ -36,14 +38,17 @@ mod single_profile_single_flow_builder;

/// Collects parameters and initializes values relevant to the built [`CmdCtx`].
#[derive(Debug)]
pub struct CmdCtxBuilder<'ctx, O, ScopeBuilder> {
pub struct CmdCtxBuilder<'ctx, CmdCtxBuilderTypesT, ScopeBuilder>
where
CmdCtxBuilderTypesT: CmdCtxBuilderTypes,
{
/// Output endpoint to return values / errors, and write progress
/// information to.
///
/// See [`OutputWrite`].
///
/// [`OutputWrite`]: peace_rt_model_core::OutputWrite
output: &'ctx mut O,
output: &'ctx mut CmdCtxBuilderTypesT::Output,
/// The interrupt channel receiver if this `CmdExecution` is interruptible.
interruptibility: Interruptibility<'static>,
/// Workspace that the `peace` tool runs in.
Expand All @@ -57,7 +62,7 @@ async fn workspace_params_serialize<WorkspaceParamsK>(
workspace_params: &WorkspaceParams<WorkspaceParamsK>,
storage: &Storage,
workspace_params_file: &WorkspaceParamsFile,
) -> Result<(), Error>
) -> Result<(), peace_rt_model::Error>
where
WorkspaceParamsK:
Clone + Debug + Eq + Hash + DeserializeOwned + Serialize + Send + Sync + 'static,
Expand Down Expand Up @@ -94,7 +99,7 @@ async fn profile_params_serialize<ProfileParamsK>(
profile_params: &ProfileParams<ProfileParamsK>,
storage: &Storage,
profile_params_file: &ProfileParamsFile,
) -> Result<(), Error>
) -> Result<(), peace_rt_model::Error>
where
ProfileParamsK:
Clone + Debug + Eq + Hash + DeserializeOwned + Serialize + Send + Sync + 'static,
Expand Down Expand Up @@ -125,7 +130,7 @@ async fn flow_params_serialize<FlowParamsK>(
flow_params: &FlowParams<FlowParamsK>,
storage: &Storage,
flow_params_file: &FlowParamsFile,
) -> Result<(), Error>
) -> Result<(), peace_rt_model::Error>
where
FlowParamsK: Clone + Debug + Eq + Hash + DeserializeOwned + Serialize + Send + Sync + 'static,
{
Expand All @@ -139,7 +144,7 @@ async fn params_specs_serialize(
params_specs: &ParamsSpecs,
storage: &Storage,
params_specs_file: &ParamsSpecsFile,
) -> Result<(), Error> {
) -> Result<(), peace_rt_model::Error> {
ParamsSpecsSerializer::serialize(storage, params_specs, params_specs_file).await
}

Expand Down Expand Up @@ -267,9 +272,9 @@ fn params_specs_merge<E>(
flow: &Flow<E>,
mut params_specs_provided: ParamsSpecs,
params_specs_stored: Option<ParamsSpecs>,
) -> Result<ParamsSpecs, Error>
) -> Result<ParamsSpecs, peace_rt_model::Error>
where
E: From<Error> + 'static,
E: From<peace_rt_model::Error> + 'static,
{
// Combine provided and stored params specs. Provided params specs take
// precedence.
Expand Down Expand Up @@ -364,7 +369,7 @@ where
if params_no_issues {
Ok(params_specs)
} else {
Err(Error::ParamsSpecsMismatch {
Err(peace_rt_model::Error::ParamsSpecsMismatch {
item_ids_with_no_params_specs,
params_specs_provided_mismatches,
params_specs_stored_mismatches,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
use crate::ctx::CmdCtxBuilderTypes;

/// Data stored by `CmdCtxBuilder` while building a
/// `CmdCtx<MultiProfileNoFlow>`.`
#[peace_code_gen::cmd_ctx_builder_impl]
#[derive(Debug)]
pub struct MultiProfileNoFlowBuilder;
pub struct MultiProfileNoFlowBuilder<CmdCtxBuilderTypesT>
where
CmdCtxBuilderTypesT: CmdCtxBuilderTypes;
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
use crate::ctx::CmdCtxBuilderTypes;

/// Data stored by `CmdCtxBuilder` while building a
/// `CmdCtx<MultiProfileSingleFlow>`.
#[peace_code_gen::cmd_ctx_builder_impl]
#[derive(Debug)]
pub struct MultiProfileSingleFlowBuilder;
pub struct MultiProfileSingleFlowBuilder<CmdCtxBuilderTypesT>
where
CmdCtxBuilderTypesT: CmdCtxBuilderTypes;
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
use crate::ctx::CmdCtxBuilderTypes;

/// Data stored by `CmdCtxBuilder` while building a
/// `CmdCtx<NoProfileNoFlow>`.
#[peace_code_gen::cmd_ctx_builder_impl]
#[derive(Debug)]
pub struct NoProfileNoFlowBuilder;
pub struct NoProfileNoFlowBuilder<CmdCtxBuilderTypesT>
where
CmdCtxBuilderTypesT: CmdCtxBuilderTypes;
Loading
Loading