package common type Lang string const ( LANG_EN Lang = "en" LANG_ZH Lang = "zh" ) func (p Lang) ToString() string { switch p { case LANG_EN: return "en" case LANG_ZH: return "zh" default: return "" } } func ValidLanguages(langs []Lang) bool { for _, lang := range langs { if lang.ToString() == "" { return false } } return true } func AllLanguages() []Lang { return []Lang{LANG_EN, LANG_ZH} } type Source string const ( SOURCE_GUI Source = "gui" SOURCE_BROWSER Source = "browser" SOURCE_ANDROID Source = "android" SOURCE_DEV Source = "dev" ) func (p Source) ToString() string { switch p { case SOURCE_GUI: return "gui" case SOURCE_BROWSER: return "browser" case SOURCE_ANDROID: return "android" case SOURCE_DEV: return "dev" default: return "" } } func ValidSources(sources []Source) bool { for _, source := range sources { if source.ToString() == "" { return false } } return true } func AllSources() []Source { return []Source{SOURCE_GUI, SOURCE_BROWSER, SOURCE_ANDROID, SOURCE_DEV} } type Product string const ( PRODUCT_DROC Product = "droc" PRODUCT_VET Product = "vetdroc" ) func (p Product) ToString() string { switch p { case PRODUCT_DROC: return "droc" case PRODUCT_VET: return "vetdroc" default: return "" } } func ValidProduct(product Product) bool { return product.ToString() != "" } func AllProducts() []Product { return []Product{PRODUCT_DROC, PRODUCT_VET} }