2 releases
Uses new Rust 2024
| 0.6.1 | Jan 18, 2026 |
|---|---|
| 0.6.0 | Jan 17, 2026 |
#1656 in GUI
82KB
1.5K
SLoC
derive-egui-form
An egui form backend for derive-survey that renders surveys as GUI forms.
This backend uses the eframe and egui crates to provide a native
desktop form interface for surveys. All fields are displayed at once
and can be edited in any order.
Usage
use elicitor::Survey;
use elicitor_form_egui::EguiBackend;
#[derive(Survey, Debug)]
struct UserProfile {
#[ask("What is your name?")]
name: String,
#[ask("How old are you?")]
#[min(0)]
#[max(150)]
age: i64,
}
fn main() -> anyhow::Result<()> {
let backend = EguiBackend::new()
.with_title("User Profile")
.with_window_size([400.0, 300.0]);
let profile: UserProfile = UserProfile::builder().run(backend)?;
println!("{:?}", profile);
Ok(())
}
elicitor
Derive interactive surveys from Rust types.
This workspace contains the elicitor crates:
| Crate | Description |
|---|---|
| elicitor | Main crate with #[derive(Survey)] macro |
| elicitor-types | Core data structures and traits |
| elicitor-macro | Procedural macro implementation |
Backends:
| Crate | Description |
|---|---|
| elicitor-wizard-dialoguer | CLI prompts via dialoguer |
| elicitor-wizard-requestty | CLI prompts via requestty |
| elicitor-wizard-ratatui | Terminal UI wizard |
| elicitor-form-ratatui | Terminal UI form |
| elicitor-form-egui | Native GUI form |
Document generators:
| Crate | Description |
|---|---|
| elicitor-doc-html | HTML form output |
| elicitor-doc-latex | LaTeX document output |
See the elicitor README for usage documentation.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Dependencies
~14–59MB
~843K SLoC