pop_chains/try_runtime/
state.rs1use serde::Serialize;
4use std::path::PathBuf;
5use strum::{Display, EnumDiscriminants};
6use strum_macros::{AsRefStr, EnumMessage, EnumString, VariantArray};
7
8#[derive(Clone, Debug, clap::Subcommand, EnumDiscriminants, Serialize)]
10#[strum_discriminants(derive(AsRefStr, EnumString, EnumMessage, VariantArray, Display))]
11#[strum_discriminants(name(StateCommand))]
12pub enum State {
13 #[strum_discriminants(strum(
15 serialize = "live",
16 message = "Live",
17 detailed_message = "Run the migrations on top of live state.",
18 ))]
19 Live(LiveState),
20
21 #[strum_discriminants(strum(
23 serialize = "snap",
24 message = "Snapshot",
25 detailed_message = "Run the migrations on top of a chain snapshot."
26 ))]
27 Snap {
28 #[serde(skip_serializing)]
30 #[clap(short = 'p', long = "path", alias = "snapshot-path")]
31 path: Option<PathBuf>,
32 },
33}
34
35#[derive(Debug, Default, Clone, clap::Args, Serialize)]
37pub struct LiveState {
38 #[arg(
40 short,
41 long,
42 value_parser = super::parse::url,
43 )]
44 pub uri: Option<String>,
45
46 #[arg(
50 short,
51 long,
52 value_parser = super::parse::hash,
53 )]
54 pub at: Option<String>,
55
56 #[arg(short, long, num_args = 1..)]
61 pub pallet: Vec<String>,
62
63 #[arg(long = "prefix", value_parser = super::parse::hash, num_args = 1..)]
66 pub hashed_prefixes: Vec<String>,
67
68 #[arg(long)]
74 pub child_tree: bool,
75}