a mini social media app for small communities
1module main
2
3import regex
4
5// 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@[inline]
14pub fn (validator StringValidator) validate(str string) bool {
15 return str.len > validator.min_len && str.len < validator.max_len
16 && validator.pattern.matches_string(str)
17}
18
19pub fn StringValidator.new(min int, max int, pattern string) StringValidator {
20 mut re := regex.new()
21 re.compile_opt(pattern) or { panic(err) }
22 return StringValidator{min, max, re}
23}