Form field validation with Nim Table errors
Nim
import std/[tables, strutils]
type Form = object
name, email: string
age: int
proc validate(f: Form): Table[string, string] =
if f.name.strip.len < 2:
result["name"] = "must be at least 2 characters"
if not f.email.contains('@') or not f.email.contains('.'):
result["email"] = "must be a valid address"
if f.age < 18 or f.age > 120:
result["age"] = "must be between 18 and 120"
let errors = validate(Form(name: "A", email: "nope", age: 12))
for field, msg in errors:
echo field, ": ", msg
echo "valid: ", errors.len == 0