// Copyright 2026 Arctel.net // SPDX-License-Identifier: Apache-2.0 package message_gateway import "sync" var ( factoriesMu sync.RWMutex factories = map[string]Factory{} ) // Register stores a channel factory under typ. func Register(typ string, fn Factory) { factoriesMu.Lock() defer factoriesMu.Unlock() factories[typ] = fn } // Lookup returns a previously registered factory. func Lookup(typ string) (Factory, bool) { factoriesMu.RLock() defer factoriesMu.RUnlock() fn, ok := factories[typ] return fn, ok }