derive-wizard 0.5.0

Derives interactive wizard-like user input for Rust types. Backend-agnostic (supports at least requestty and egui).
Documentation
[dependencies.crossterm]
optional = true
version = "0.29"

[dependencies.derive-wizard-macro]
version = "0.5"

[dependencies.derive-wizard-types]
version = "0.5"

[dependencies.dialoguer]
optional = true
version = "0.12"

[dependencies.eframe]
optional = true
version = "0.33"

[dependencies.egui]
optional = true
version = "0.33"

[dependencies.itertools]
optional = true
version = "0.14"

[dependencies.ratatui]
optional = true
version = "0.30"

[dependencies.requestty]
optional = true
version = "0.6"

[dependencies.thiserror]
version = "2"

[dependencies.typst]
optional = true
version = "0.14"

[[example]]
name = "assumptions"
path = "examples/features/assumptions.rs"

[[example]]
name = "builder_api"
path = "examples/builders/builder_api.rs"

[[example]]
name = "builder_comprehensive"
path = "examples/builders/builder_comprehensive.rs"

[[example]]
name = "builder_egui"
path = "examples/builders/builder_egui.rs"
required-features = ["egui-backend"]

[[example]]
name = "deeply_nested"
path = "examples/advanced/deeply_nested.rs"

[[example]]
name = "dialoguer"
path = "examples/backends/dialoguer.rs"
required-features = ["dialoguer-backend"]

[[example]]
name = "dialoguer_multi_select"
path = "examples/backends/dialoguer_multi_select.rs"
required-features = ["dialoguer-backend"]

[[example]]
name = "dialoguer_password"
path = "examples/backends/dialoguer_password.rs"
required-features = ["dialoguer-backend"]

[[example]]
name = "dialoguer_suggestions"
path = "examples/backends/dialoguer_suggestions.rs"
required-features = ["dialoguer-backend"]

[[example]]
name = "dialoguer_validation"
path = "examples/backends/dialoguer_validation.rs"
required-features = ["dialoguer-backend"]

[[example]]
name = "egui"
path = "examples/backends/egui.rs"
required-features = ["egui-backend"]

[[example]]
name = "egui_assumptions_and_suggestions"
path = "examples/backends/egui_assumptions_and_suggestions.rs"
required-features = ["egui-backend"]

[[example]]
name = "egui_multi_select"
path = "examples/backends/egui_multi_select.rs"
required-features = ["egui-backend"]

[[example]]
name = "egui_nested_validation"
path = "examples/features/egui_nested_validation.rs"
required-features = ["egui-backend"]

[[example]]
name = "egui_suggestions"
path = "examples/backends/egui_suggestions.rs"
required-features = ["egui-backend"]

[[example]]
name = "egui_validation"
path = "examples/backends/egui_validation.rs"
required-features = ["egui-backend"]

[[example]]
name = "enum_structure"
path = "examples/advanced/enum_structure.rs"

[[example]]
name = "enum_transport"
path = "examples/basic/enum_transport.rs"

[[example]]
name = "multi_select"
path = "examples/features/multi_select.rs"
required-features = ["dialoguer-backend"]

[[example]]
name = "multiline"
path = "examples/features/multiline.rs"

[[example]]
name = "nested_enum_payment"
path = "examples/advanced/nested_enum_payment.rs"

[[example]]
name = "nested_structs"
path = "examples/basic/nested_structs.rs"

[[example]]
name = "nested_validation"
path = "examples/features/nested_validation.rs"
required-features = ["requestty-backend"]

[[example]]
name = "password_masking"
path = "examples/features/password_masking.rs"

[[example]]
name = "pathbuf"
path = "examples/basic/pathbuf.rs"

[[example]]
name = "prelude_epilogue"
path = "examples/features/prelude_epilogue.rs"

[[example]]
name = "print_interview"
path = "examples/advanced/print_interview.rs"

[[example]]
name = "ratatui"
path = "examples/backends/ratatui.rs"
required-features = ["ratatui-backend"]

[[example]]
name = "ratatui_job_application"
path = "examples/backends/ratatui_job_application.rs"
required-features = ["ratatui-backend"]

[[example]]
name = "ratatui_multi_select"
path = "examples/backends/ratatui_multi_select.rs"
required-features = ["ratatui-backend"]

[[example]]
name = "ratatui_pizza"
path = "examples/backends/ratatui_pizza.rs"
required-features = ["ratatui-backend"]

[[example]]
name = "ratatui_server_config"
path = "examples/backends/ratatui_server_config.rs"
required-features = ["ratatui-backend"]

[[example]]
name = "requestty_multi_select"
path = "examples/backends/requestty_multi_select.rs"
required-features = ["requestty-backend"]

[[example]]
name = "showcase"
path = "examples/showcase.rs"

[[example]]
name = "simple_struct"
path = "examples/basic/simple_struct.rs"

[[example]]
name = "suggestions"
path = "examples/features/suggestions.rs"

[[example]]
name = "typst_form"
path = "examples/features/typst_form.rs"
required-features = ["typst-form"]

[[example]]
name = "typst_multi_select"
path = "examples/backends/typst_multi_select.rs"
required-features = ["typst-form"]

[[example]]
name = "typst_rental_application"
path = "examples/backends/typst_rental_application.rs"
required-features = ["typst-form"]

[[example]]
name = "validation"
path = "examples/features/validation.rs"

[features]
default = ["requestty-backend"]
dialoguer-backend = ["dep:dialoguer"]
egui-backend = ["dep:egui", "dep:eframe", "dep:itertools"]
ratatui-backend = ["dep:ratatui", "dep:crossterm"]
requestty-backend = ["dep:requestty"]
typst-backend = ["dep:typst"]
typst-form = []

[lib]
name = "derive_wizard"
path = "src/lib.rs"

[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
description = "Derives interactive wizard-like user input for Rust types. Backend-agnostic (supports at least requestty and egui)."
edition = "2024"
license = "MIT OR Apache-2.0"
name = "derive-wizard"
readme = "README.md"
repository = "https://github.com/barafael/derive-wizard"
version = "0.5.0"

[[test]]
name = "wizard_tests"
path = "tests/wizard_tests.rs"