a mini social media app for small communities
1module webapp
2
3import regex
4
5// StringValidator handles validation of user-input fields.
6pub struct StringValidator {
7pub:
8 min_len int
9 max_len int = max_int
10 pattern regex.RE
11}
12
13// validate validates a given string and returns true if it succeeded and false
14// otherwise.
15@[inline]
16pub fn (validator StringValidator) validate(str string) bool {
17 return str.len > validator.min_len && str.len < validator.max_len
18 && validator.pattern.matches_string(str)
19}
20
21// StringValidator.new creates a new StringValidator with the given min, max,
22// and pattern.
23pub fn StringValidator.new(min int, max int, pattern string) StringValidator {
24 mut re := regex.new()
25 re.compile_opt(pattern) or { panic(err) }
26 return StringValidator{min, max, re}
27}