Enum
Allow one of a predefined set of values.
Parameters
- enum:
array- The array containing the valid values.
- options?:
table- required_error?:
string- Custom required message
- enum_error?:
string- Custom enum message
- required_error?:
local role = calid:enum({
"guess",
"user",
"admin"
}, {
required_error = "Role is required",
enum_error = "The specified role does not exist"
})Options
:default(value)– Specifies a fallback value when the input isnil. Useful for optional fields with defaults.:optional()– Allowsnilas a valid value without causing a validation error.
Examples
local roleSchema = calid:enum({ "guess", "user", "admin" })
local validRole = "user"
roleSchema:parse(validRole)
--{
-- success = true,
-- data = "user"
--}
local invalidRole = "moderator"
roleSchema:parse(invalidRole)
--{
-- success = false,
-- error = {
-- code = "enum",
-- message = "Expected one of 'guess, user, admin', got 'moderator'"
-- }
--}