nested_enum_payment/
nested_enum_payment.rs1use derive_wizard::Wizard;
2
3#[derive(Debug, Wizard)]
4#[allow(unused)]
5struct Order {
6 #[prompt("Enter product name:")]
7 name: String,
8
9 #[prompt("Select payment method:")]
10 payment: PaymentMethod,
11}
12
13#[derive(Debug, Wizard)]
14#[allow(unused)]
15enum PaymentMethod {
16 Cash,
17
18 CreditCard {
19 #[prompt("Card number:")]
20 card_number: String,
21
22 #[prompt("Expiry:")]
23 expiry: String,
24
25 #[prompt("CVV:")]
26 #[mask]
27 cvv: String,
28 },
29
30 BankTransfer {
31 #[prompt("Account number:")]
32 account: String,
33
34 #[prompt("Routing number:")]
35 routing: String,
36 },
37}
38
39fn main() {
40 let order = Order::wizard_builder().build();
41 println!("{:#?}", order);
42}