define

package
v0.3.60 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2024 License: LGPL-2.1 Imports: 8 Imported by: 46

Documentation

Overview

Package define 利用泛型特性,简化代码编写。

  • 支持定义组件。
  • 支持定义插件与插件接口,按安装位置分类,共有通用插件、运行时插件、服务插件三种。
  • 使用 GoLand 作为 IDE 时,需要更新至 2023.2 版本以上,否则可能会有误报错。
  • 可以参考官方示例:https://git.golaxy.org/examples,学习如何使用。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ComponentDefinition added in v0.2.58

type ComponentDefinition struct {
	Prototype string // 组件原型名称
	Name      string // 组件名称
}

ComponentDefinition 组件定义

func Component

func Component[COMP any](name ...string) ComponentDefinition

Component 定义组件

type PluginDefinition added in v0.2.58

type PluginDefinition[PLUGIN_IFACE, OPTION any] struct {
	Name      string                                                // 插件名称
	Install   generic.ActionVar1[extension.PluginProvider, OPTION]  // 向插件包安装
	Uninstall generic.Action1[extension.PluginProvider]             // 从插件包卸载
	Using     generic.Func1[extension.PluginProvider, PLUGIN_IFACE] // 使用插件
}

PluginDefinition 通用插件定义

func Plugin

func Plugin[PLUGIN_IFACE, OPTION any](creator generic.FuncVar0[OPTION, PLUGIN_IFACE]) PluginDefinition[PLUGIN_IFACE, OPTION]

Plugin 定义通用插件,支持运行时和服务上下文

type PluginInterfaceDefinition added in v0.2.58

type PluginInterfaceDefinition[PLUGIN_IFACE any] struct {
	Name  string                                                // 插件名称
	Using generic.Func1[extension.PluginProvider, PLUGIN_IFACE] // 使用插件
}

PluginInterfaceDefinition 通用插件接口定义

func PluginInterface

func PluginInterface[PLUGIN_IFACE any]() PluginInterfaceDefinition[PLUGIN_IFACE]

PluginInterface 定义通用插件接口,支持运行时和服务上下文,通常用于为同类插件的不同实现提供统一的接口

type RuntimePluginDefinition added in v0.2.58

type RuntimePluginDefinition[PLUGIN_IFACE, OPTION any] struct {
	Name      string                                               // 插件名称
	Install   generic.ActionVar1[extension.PluginProvider, OPTION] // 向插件包安装
	Uninstall generic.Action1[extension.PluginProvider]            // 从插件包卸载
	Using     generic.Func1[runtime.Context, PLUGIN_IFACE]         // 使用插件
}

RuntimePluginDefinition 运行时插件定义

func RuntimePlugin

func RuntimePlugin[PLUGIN_IFACE, OPTION any](creator generic.FuncVar0[OPTION, PLUGIN_IFACE]) RuntimePluginDefinition[PLUGIN_IFACE, OPTION]

RuntimePlugin 定义运行时插件,支持运行时上下文

type RuntimePluginInterfaceDefinition added in v0.2.58

type RuntimePluginInterfaceDefinition[PLUGIN_IFACE any] struct {
	Name  string                                       // 插件名称
	Using generic.Func1[runtime.Context, PLUGIN_IFACE] // 使用插件
}

RuntimePluginInterfaceDefinition 运行时插件接口定义

func RuntimePluginInterface

func RuntimePluginInterface[PLUGIN_IFACE any]() RuntimePluginInterfaceDefinition[PLUGIN_IFACE]

RuntimePluginInterface 定义运行时插件接口,支持运行时上下文,通常用于为同类插件的不同实现提供统一的接口

type ServicePluginDefinition added in v0.2.58

type ServicePluginDefinition[PLUGIN_IFACE, OPTION any] struct {
	Name      string                                               // 插件名称
	Install   generic.ActionVar1[extension.PluginProvider, OPTION] // 向插件包安装
	Uninstall generic.Action1[extension.PluginProvider]            // 从插件包卸载
	Using     generic.Func1[service.Context, PLUGIN_IFACE]         // 使用插件
}

ServicePluginDefinition 服务插件定义

func ServicePlugin

func ServicePlugin[PLUGIN_IFACE, OPTION any](creator generic.FuncVar0[OPTION, PLUGIN_IFACE]) ServicePluginDefinition[PLUGIN_IFACE, OPTION]

ServicePlugin 定义服务插件,支持服务上下文

type ServicePluginInterfaceDefinition added in v0.2.58

type ServicePluginInterfaceDefinition[PLUGIN_IFACE any] struct {
	Name  string                                       // 插件名称
	Using generic.Func1[service.Context, PLUGIN_IFACE] // 使用插件
}

ServicePluginInterfaceDefinition 服务插件接口定义

func ServicePluginInterface

func ServicePluginInterface[PLUGIN_IFACE any]() ServicePluginInterfaceDefinition[PLUGIN_IFACE]

ServicePluginInterface 定义服务插件接口,支持服务上下文,通常用于为同类插件的不同实现提供统一的接口

Jump to

Keyboard shortcuts

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