github.com/seeker-insurance/kit@v0.0.13/assets/assets.go (about) 1 package assets 2 3 import ( 4 "github.com/seeker-insurance/kit/errorlib" 5 ) 6 7 type ( 8 AssetGet func(string) ([]byte, error) 9 AssetDir func(string) ([]string, error) 10 AssetManager struct { 11 Get AssetGet 12 Dir AssetDir 13 } 14 ) 15 16 const ( 17 ErrManagerNotSet errorlib.ErrorString = "asset manager is not set" 18 ErrNoGetFunc errorlib.ErrorString = "asset manager has no get func" 19 ErrNoDirFunc errorlib.ErrorString = "asset manager has no dir func" 20 ) 21 22 var Manager *AssetManager 23 24 // Get retrieve static asset from client project data directory. This allows code in kit to use client project data dir 25 func Get(name string) ([]byte, error) { 26 if Manager == nil { 27 return nil, ErrManagerNotSet 28 } else if Manager.Get == nil { 29 return nil, ErrNoGetFunc 30 } 31 32 return Manager.Get(name) 33 } 34 35 func Dir(name string) ([]string, error) { 36 if Manager == nil { 37 return nil, ErrManagerNotSet 38 } else if Manager.Dir == nil { 39 return nil, ErrNoDirFunc 40 } 41 42 return Manager.Dir(name) 43 }