elicitor_form_egui/lib.rs
1//! # derive-egui-form
2//!
3//! An egui form backend for derive-survey that renders surveys as GUI forms.
4//!
5//! This backend uses the `eframe` and `egui` crates to provide a native
6//! desktop form interface for surveys. All fields are displayed at once
7//! and can be edited in any order.
8//!
9//! ## Usage
10//!
11//! ```rust,ignore
12//! use elicitor::Survey;
13//! use elicitor_form_egui::EguiBackend;
14//!
15//! #[derive(Survey, Debug)]
16//! struct UserProfile {
17//! #[ask("What is your name?")]
18//! name: String,
19//!
20//! #[ask("How old are you?")]
21//! #[min(0)]
22//! #[max(150)]
23//! age: i64,
24//! }
25//!
26//! fn main() -> anyhow::Result<()> {
27//! let backend = EguiBackend::new()
28//! .with_title("User Profile")
29//! .with_window_size([400.0, 300.0]);
30//!
31//! let profile: UserProfile = UserProfile::builder().run(backend)?;
32//! println!("{:?}", profile);
33//! Ok(())
34//! }
35//! ```
36
37mod backend;
38
39pub use backend::{EguiBackend, EguiError};