Schemas
Enum

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
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 is nil. Useful for optional fields with defaults.
  • :optional() – Allows nil as 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'"
--    }
--}