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};