subsystem

package
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package subsystem provides infrastructure for building composable server subsystems.

Subsystems group related components that are built together with explicit dependencies. Each subsystem follows a pattern:

  • Config struct with required fields
  • Option functions for optional/override dependencies
  • New() constructor that validates config and builds components
  • Close() method for cleanup

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Subsystem

type Subsystem interface {
	io.Closer
}

Subsystem is implemented by all subsystems that require cleanup.

type ValidationError

type ValidationError struct {
	Subsystem string
	Field     string
	Message   string
}

ValidationError represents a missing or invalid configuration field.

func (*ValidationError) Error

func (e *ValidationError) Error() string

type Validator

type Validator struct {
	// contains filtered or unexported fields
}

Validator collects validation errors for a subsystem configuration.

func NewValidator

func NewValidator(subsystem string) *Validator

NewValidator creates a validator for the named subsystem.

func (*Validator) Error

func (v *Validator) Error() error

Error returns a combined error if any validations failed, nil otherwise.

func (*Validator) Required

func (v *Validator) Required(field string, value any)

Required checks that a value is non-nil/non-zero and records an error if not.

func (*Validator) RequiredString

func (v *Validator) RequiredString(field string, value string)

RequiredString checks that a string is non-empty.

Directories

Path Synopsis
Package metrics provides a subsystem for building metrics collection components.
Package metrics provides a subsystem for building metrics collection components.
Package observability provides a subsystem for building observability components.
Package observability provides a subsystem for building observability components.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL