pub enum FieldKind {
Text,
Secret,
Number,
Textarea,
Select,
Checkbox,
Hidden,
}Expand description
What kind of value a form field takes.
The union of the two vocabularies that diverged, which is what triggered
this crate. They have since converged on their own: both apps now have a
renderFormField emitting the same anatomy, and what is left differing is
the kind set, the error shape, and whether the return is a string or a node.
Validation is deliberately absent. Neither app has a shared story (goingson
validates after collecting the form data, with per-field transform hooks;
Balanced Breakfast has required and nothing else), and a schema that
describes fields but not constraints acquires a constraint layer per app,
which is exactly how the current divergence started. Naming it absent is a
decision; leaving it unmentioned would not be.
Variants§
Text
A single line of text.
Secret
A single line of text that must never be echoed, logged or round-tripped through anything that might persist it.
Number
A number.
Textarea
Several lines of text.
Select
One of a fixed set.
Checkbox
On or off.
Hidden
Carried through the form and never shown.
Implementations§
Source§impl FieldKind
impl FieldKind
Sourcepub const fn confidential(self) -> bool
pub const fn confidential(self) -> bool
Whether the value must be kept out of logs and diagnostics.
Sourcepub const fn labels_itself(self) -> bool
pub const fn labels_itself(self) -> bool
Where the field’s own label sits.
A checkbox labels itself on the right of the box; everything else takes a label above. Both webview apps already do this and both special-case it inline, which is the tell that it belongs in the description.