Skip to content

Schema API Reference

Schema-based validation for .env configurations.

Schema

Schema.init

zig
pub fn init(fields: []const FieldDef) Schema

Create a new schema from field definitions.

Schema.validate

zig
pub fn validate(self: Schema, vars: *const std.StringHashMap([]const u8)) []ValidationError

Validate a set of key-value pairs against this schema.

FieldDef

zig
pub const FieldDef = struct {
    key: []const u8,
    required: bool = true,
    default_value: ?[]const u8 = null,
    default_fn: ?DefaultFn = null,
    validators_list: []const ValidatorFn = &.{},
    description: ?[]const u8 = null,
};
FieldTypeDefaultDescription
key[]const u8The key name
requiredbooltrueWhether the field is required
default_value?[]const u8nullDefault value if missing
default_fn?DefaultFnnullDefault value provider function
validators_list[]const ValidatorFn&.{}Validators to run
description?[]const u8nullDescription for error messages

ValidationError

zig
pub const ValidationError = struct {
    key: []const u8,
    message: []const u8,
    level: Level = .err,
};
FieldTypeDefaultDescription
key[]const u8The key that failed validation
message[]const u8Error or warning message
levelLevel.err.err for errors, .warning for warnings

Released under the MIT License.