github.com/Cloud-Foundations/Dominator@v0.3.4/lib/mbr/tableType.go (about) 1 package mbr 2 3 import ( 4 "fmt" 5 ) 6 7 var tableTypeToString = map[TableType]string{ 8 TABLE_TYPE_AIX: "aix", 9 TABLE_TYPE_BSD: "bsd", 10 TABLE_TYPE_DVH: "dvh", 11 TABLE_TYPE_GPT: "gpt", 12 TABLE_TYPE_LOOP: "loop", 13 TABLE_TYPE_MAC: "mac", 14 TABLE_TYPE_MSDOS: "msdos", 15 TABLE_TYPE_PC98: "pc98", 16 TABLE_TYPE_SUN: "sun", 17 } 18 19 func (tableType TableType) lookupString() (string, error) { 20 if label, ok := tableTypeToString[tableType]; !ok { 21 return "", fmt.Errorf("unknown table type: %d", tableType) 22 } else { 23 return label, nil 24 } 25 } 26 27 func (tt *TableType) set(value string) error { 28 for tableType, name := range tableTypeToString { 29 if value == name { 30 *tt = tableType 31 return nil 32 } 33 } 34 return fmt.Errorf("unknown table type: %s", value) 35 } 36 37 func (tt TableType) string() string { 38 if label, err := tt.lookupString(); err != nil { 39 return err.Error() 40 } else { 41 return label 42 } 43 }