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  }