lightspeed/form
Form binding helpers for event payloads and typed form values.
Types
One form field.
pub type Field {
Field(name: String, value: String)
}
Constructors
-
Field(name: String, value: String)
Form decode and binding errors.
pub type FormError {
MissingField(String)
InvalidInteger(name: String, value: String)
InvalidBoolean(name: String, value: String)
}
Constructors
-
MissingField(String) -
InvalidInteger(name: String, value: String) -
InvalidBoolean(name: String, value: String)
Values
pub fn bool(
form: FormData,
name: String,
) -> Result(Bool, FormError)
Parse a required boolean field.
pub fn checked(form: FormData, name: String) -> Bool
Presence helper for checkbox-style fields.
pub fn error_to_string(error: FormError) -> String
Render stable error string for logs or telemetry.
pub fn from_entries(entries: List(#(String, String))) -> FormData
Build form data from key/value entries.
pub fn int(
form: FormData,
name: String,
) -> Result(Int, FormError)
Parse a required integer field.
pub fn parse_payload(payload: String) -> FormData
Parse a URL-form-encoded style payload (name=value&next=...).
This parser keeps values as plain strings and does not perform percent decoding. It is deterministic and suitable for typed server decoders.
pub fn require(
form: FormData,
name: String,
) -> Result(String, FormError)
Return a required field or an explicit missing-field error.
pub fn to_entries(form: FormData) -> List(#(String, String))
Convert form data back into entries.
pub fn value(
form: FormData,
name: String,
) -> option.Option(String)
Return first value for a field.