| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package boot
- import "sort"
- type resource struct {
- init initFunc
- start startFunc
- config ResourceConfig
- }
- func newResource(i initFunc, s startFunc, op ...ConfigResource) Resource {
- config := ResourceConfig{}
- for _, elem := range op {
- elem(&config)
- }
- return &resource{
- init: i,
- start: s,
- config: config,
- }
- }
- func (i *resource) Init() error {
- if i.init != nil {
- return i.init()
- }
- return nil
- }
- func (i *resource) Start() error {
- if i.start != nil {
- return i.start()
- }
- return nil
- }
- func (i *resource) Config() ResourceConfig {
- return i.config
- }
- type ResourceConfig struct {
- Name string
- }
- func SetResourceName(name string) ConfigResource {
- return func(config *ResourceConfig) {
- config.Name = name
- }
- }
- func sortResourceType(res []ResourceType) []ResourceType {
- if res == nil || len(res) == 0 {
- return []ResourceType{}
- }
- sort.Sort(SortedResource(res))
- return res
- }
- /**
- 排序资源
- */
- type SortedResource []ResourceType
- func (s SortedResource) Len() int {
- return len(s)
- }
- func (s SortedResource) Less(i, j int) bool {
- return s[i] < s[j]
- }
- func (s SortedResource) Swap(i, j int) {
- s[i], s[j] = s[j], s[i]
- }
|