Documentation
¶
Overview ¶
Package define 为插件声明提供类型安全的辅助定义。
Package define 把插件构造函数、接口类型和插件名称封装成可复用的定义对象,避免 业务代码反复编写名称、ID 计算和类型断言。
定义对象会暴露 Install、Uninstall、Require 和 Lookup 等操作,适合在包级变量中 声明后复用。常用入口包括:
- AddIn:同时适用于 service 与 runtime 的通用插件定义;
- ServiceAddIn / RuntimeAddIn:分别提供 service.Context 与 runtime.Context 类型的 Require 和 Lookup 函数;
- AddInInterface 等 Interface 变体:只声明依赖契约,不绑定构造函数。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddInDefinition ¶ added in v0.3.66
type AddInDefinition[ADDIN_IFACE, SETTING any] struct { Id uint64 // 由 Name 生成的插件 ID。 Name string // 插件注册名称。 Install generic.ActionVar1[extension.AddInProvider, SETTING] // 构造插件并安装到给定提供者。 Uninstall generic.Action1[extension.AddInProvider] // 从给定提供者卸载插件。 Require generic.Func1[extension.AddInProvider, ADDIN_IFACE] // 获取正在运行的插件,不可用时 panic。 Lookup generic.FuncPair1[extension.AddInProvider, ADDIN_IFACE, bool] // 查询管理器当前持有的插件。 }
AddInDefinition 封装通用插件的标识、构造和访问操作。
type AddInInterfaceDefinition ¶ added in v0.3.66
type AddInInterfaceDefinition[ADDIN_IFACE any] struct { Id uint64 // 由 Name 生成的插件 ID。 Name string // 插件注册名称。 Require generic.Func1[extension.AddInProvider, ADDIN_IFACE] // 获取正在运行的插件,不可用时 panic。 Lookup generic.FuncPair1[extension.AddInProvider, ADDIN_IFACE, bool] // 查询管理器当前持有的插件。 }
AddInInterfaceDefinition 封装通用插件接口的标识和访问操作。
func AddInInterface ¶ added in v0.3.66
func AddInInterface[ADDIN_IFACE any](name ...string) AddInInterfaceDefinition[ADDIN_IFACE]
AddInInterface 创建不绑定构造函数的通用插件接口定义。 它适合用同一名称约定访问同类插件的不同实现。
type RuntimeAddInDefinition ¶ added in v0.3.66
type RuntimeAddInDefinition[ADDIN_IFACE, SETTING any] struct { Id uint64 // 由 Name 生成的插件 ID。 Name string // 插件注册名称。 Install generic.ActionVar1[extension.AddInProvider, SETTING] // 构造插件并安装到给定提供者。 Uninstall generic.Action1[extension.AddInProvider] // 从给定提供者卸载插件。 Require generic.Func1[runtime.Context, ADDIN_IFACE] // 从运行时获取正在运行的插件,不可用时 panic。 Lookup generic.FuncPair1[runtime.Context, ADDIN_IFACE, bool] // 查询运行时管理器当前持有的插件。 }
RuntimeAddInDefinition 封装运行时插件的标识、构造和访问操作。
func RuntimeAddIn ¶ added in v0.3.66
func RuntimeAddIn[ADDIN_IFACE, SETTING any](creator generic.FuncVar0[SETTING, ADDIN_IFACE], name ...string) RuntimeAddInDefinition[ADDIN_IFACE, SETTING]
RuntimeAddIn 创建运行时插件定义,其 Require 和 Lookup 直接接受 runtime.Context。 ADDIN_IFACE 必须是接口类型。
type RuntimeAddInInterfaceDefinition ¶ added in v0.3.66
type RuntimeAddInInterfaceDefinition[ADDIN_IFACE any] struct { Id uint64 // 由 Name 生成的插件 ID。 Name string // 插件注册名称。 Require generic.Func1[runtime.Context, ADDIN_IFACE] // 从运行时获取正在运行的插件,不可用时 panic。 Lookup generic.FuncPair1[runtime.Context, ADDIN_IFACE, bool] // 查询运行时管理器当前持有的插件。 }
RuntimeAddInInterfaceDefinition 封装运行时插件接口的标识和访问操作。
func RuntimeAddInInterface ¶ added in v0.3.66
func RuntimeAddInInterface[ADDIN_IFACE any](name ...string) RuntimeAddInInterfaceDefinition[ADDIN_IFACE]
RuntimeAddInInterface 创建不绑定构造函数的运行时插件接口定义。 它适合通过 runtime.Context 访问同类插件的不同实现。
type ServiceAddInDefinition ¶ added in v0.3.66
type ServiceAddInDefinition[ADDIN_IFACE, SETTING any] struct { Id uint64 // 由 Name 生成的插件 ID。 Name string // 插件注册名称。 Install generic.ActionVar1[extension.AddInProvider, SETTING] // 构造插件并安装到给定提供者。 Uninstall generic.Action1[extension.AddInProvider] // 从给定提供者卸载插件。 Require generic.Func1[service.Context, ADDIN_IFACE] // 从服务获取正在运行的插件,不可用时 panic。 Lookup generic.FuncPair1[service.Context, ADDIN_IFACE, bool] // 查询服务管理器当前持有的插件。 }
ServiceAddInDefinition 封装服务插件的标识、构造和访问操作。
func ServiceAddIn ¶ added in v0.3.66
func ServiceAddIn[ADDIN_IFACE, SETTING any](creator generic.FuncVar0[SETTING, ADDIN_IFACE], name ...string) ServiceAddInDefinition[ADDIN_IFACE, SETTING]
ServiceAddIn 创建服务插件定义,其 Require 和 Lookup 直接接受 service.Context。 ADDIN_IFACE 必须是接口类型。
type ServiceAddInInterfaceDefinition ¶ added in v0.3.66
type ServiceAddInInterfaceDefinition[ADDIN_IFACE any] struct { Id uint64 // 由 Name 生成的插件 ID。 Name string // 插件注册名称。 Require generic.Func1[service.Context, ADDIN_IFACE] // 从服务获取正在运行的插件,不可用时 panic。 Lookup generic.FuncPair1[service.Context, ADDIN_IFACE, bool] // 查询服务管理器当前持有的插件。 }
ServiceAddInInterfaceDefinition 封装服务插件接口的标识和访问操作。
func ServiceAddInInterface ¶ added in v0.3.66
func ServiceAddInInterface[ADDIN_IFACE any](name ...string) ServiceAddInInterfaceDefinition[ADDIN_IFACE]
ServiceAddInInterface 创建不绑定构造函数的服务插件接口定义。 它适合通过 service.Context 访问同类插件的不同实现。