registration

Official documentation for the Parsley registration package.
import "github.com/matzefriedrich/parsley/pkg/registration"

Index

  • Constants
  • Variables
  • func CreateServiceActivatorFrom[T any](instance T) (func() T, error)
  • func CreateServiceRegistration(activatorFunc any, lifetimeScope types.LifetimeScope) (types.ServiceRegistrationSetup, error)
  • func NewDependencyInfo(registration types.ServiceRegistration, instance interface{}, consumer types.DependencyInfo) types.DependencyInfo
  • func NewMultiRegistryAccessor(registries ...types.ServiceRegistryAccessor) types.ServiceRegistryAccessor
  • func NewServiceRegistrationList(sequence core.ServiceIdSequence) types.ServiceRegistrationList
  • func NewServiceRegistry() types.ServiceRegistry
  • func RegisterInstance[T any](registry types.ServiceRegistry, instance T) error
  • func RegisterScoped(registry SupportsRegisterActivatorFunc, activatorFunc ...any) error
  • func RegisterSingleton(registry SupportsRegisterActivatorFunc, activatorFunc ...any) error
  • func RegisterTransient(registry SupportsRegisterActivatorFunc, activatorFunc ...any) error
  • type NamedServiceRegistrationFunc
    • func NamedServiceRegistration(name string, activatorFunc any, scope types.LifetimeScope) NamedServiceRegistrationFunc
  • type SupportsRegisterActivatorFunc
  • type Validator
    • func NewServiceRegistrationsValidator() Validator

Constants

const (
    ErrorFailedToRetrieveServiceRegistrations       = "failed to retrieve service registrations"
    ErrorRegistryMissesRequiredServiceRegistrations = "the registry misses required service registrations"
    ErrorCircularServiceRegistrationDetected        = "circular service registration detected"
)

Variables

var (
    // ErrFailedToRetrieveServiceRegistrations signifies an error encountered while attempting to retrieve service registrations.
    ErrFailedToRetrieveServiceRegistrations = types.NewRegistryError(ErrorFailedToRetrieveServiceRegistrations)

    // ErrRegistryMissesRequiredServiceRegistrations indicates that required service registrations are missing.
    ErrRegistryMissesRequiredServiceRegistrations = types.NewRegistryError(ErrorRegistryMissesRequiredServiceRegistrations)

    // ErrCircularServiceRegistrationDetected signifies that a circular service registration was encountered.
    ErrCircularServiceRegistrationDetected = types.NewResolverError(ErrorCircularServiceRegistrationDetected)
)

func CreateServiceActivatorFrom

func CreateServiceActivatorFrom[T any](instance T) (func() T, error)

CreateServiceActivatorFrom creates a service activator function for a given instance of type T.

func CreateServiceRegistration

func CreateServiceRegistration(activatorFunc any, lifetimeScope types.LifetimeScope) (types.ServiceRegistrationSetup, error)

CreateServiceRegistration creates a service registration instance from the given activator function and lifetime scope.

func NewDependencyInfo

func NewDependencyInfo(registration types.ServiceRegistration, instance interface{}, consumer types.DependencyInfo) types.DependencyInfo

NewDependencyInfo creates a new instance of types.DependencyInfo with the provided service registration, instance, and parent dependency.

func NewMultiRegistryAccessor

func NewMultiRegistryAccessor(registries ...types.ServiceRegistryAccessor) types.ServiceRegistryAccessor

NewMultiRegistryAccessor creates a new ServiceRegistryAccessor that aggregates multiple registries.

func NewServiceRegistrationList

func NewServiceRegistrationList(sequence core.ServiceIdSequence) types.ServiceRegistrationList

NewServiceRegistrationList creates a new service registration list instance.

func NewServiceRegistry

func NewServiceRegistry() types.ServiceRegistry

NewServiceRegistry creates a new types.ServiceRegistry instance.

func RegisterInstance

func RegisterInstance[T any](registry types.ServiceRegistry, instance T) error

RegisterInstance registers an instance of type T. A registered instance behaves like a service registration with a singleton lifetime scope.

func RegisterScoped

func RegisterScoped(registry SupportsRegisterActivatorFunc, activatorFunc ...any) error

RegisterScoped registers services with a scoped lifetime in the provided service registry.

func RegisterSingleton

func RegisterSingleton(registry SupportsRegisterActivatorFunc, activatorFunc ...any) error

RegisterSingleton registers services with a singleton lifetime in the provided service registry.

func RegisterTransient

func RegisterTransient(registry SupportsRegisterActivatorFunc, activatorFunc ...any) error

RegisterTransient registers services with a transient lifetime in the provided service registry.

type NamedServiceRegistrationFunc

NamedServiceRegistrationFunc defines a function that returns a service name, its activator function, and its lifetime scope. This type supports the internal infrastructure.

type NamedServiceRegistrationFunc func() (name string, activatorFunc any, scope types.LifetimeScope)

func NamedServiceRegistration

func NamedServiceRegistration(name string, activatorFunc any, scope types.LifetimeScope) NamedServiceRegistrationFunc

NamedServiceRegistration registers a service with a specified name, activator function, and lifetime scope.

type SupportsRegisterActivatorFunc

SupportsRegisterActivatorFunc allows the registration of activator functions with different lifetime scopes.

type SupportsRegisterActivatorFunc interface {
    Register(activatorFunc any, scope types.LifetimeScope) error
}

type Validator

Validator defines an interface to validate service registries..

type Validator interface {

    // Validate checks the provided ServiceRegistry for missing, invalid, or circular service dependencies. Returns an error if any issues are found.
    Validate(registry types.ServiceRegistry) error
}

func NewServiceRegistrationsValidator

func NewServiceRegistrationsValidator() Validator

NewServiceRegistrationsValidator creates a new Validator instance.