Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Storage ¶
type Storage struct {
// contains filtered or unexported fields
}
Storage provides thread-safe storage for hooks with multiple access patterns. It maintains two indices:
- byName: Fast lookup by hook name (O(1))
- byBinding: Fast lookup by binding type (O(1))
Thread Safety: All methods use RWMutex for concurrent access.
func (*Storage) Add ¶
func (s *Storage) Add(hook *hooks.ModuleHook)
Add adds a hook to storage, indexing it by name and all its bindings. If a hook with the same name exists, it will be replaced. Each binding type the hook declares will have the hook added to its list.
func (*Storage) Clear ¶
func (s *Storage) Clear()
Clear removes all hooks from storage, resetting it to empty state.
func (*Storage) GetHookByName ¶
func (s *Storage) GetHookByName(name string) *hooks.ModuleHook
GetHookByName returns the hook with the specified name, or nil if not found.
func (*Storage) GetHooks ¶
func (s *Storage) GetHooks() []*hooks.ModuleHook
GetHooks returns all hooks in storage in arbitrary order. The returned slice is safe to use - it's a copy of internal data.
func (*Storage) GetHooksByBinding ¶
func (s *Storage) GetHooksByBinding(binding shtypes.BindingType) []*hooks.ModuleHook
GetHooksByBinding returns copied slices of all hooks for a specific binding type, sorted by order.