github.com/stffabi/git-lfs@v2.3.5-0.20180214015214-8eeaa8d88902+incompatible/git/odb/object_type.go (about)

     1  package odb
     2  
     3  import "strings"
     4  
     5  // ObjectType is a constant enumeration type for identifying the kind of object
     6  // type an implementing instance of the Object interface is.
     7  type ObjectType uint8
     8  
     9  const (
    10  	UnknownObjectType ObjectType = iota
    11  	BlobObjectType
    12  	TreeObjectType
    13  	CommitObjectType
    14  	TagObjectType
    15  )
    16  
    17  // ObjectTypeFromString converts from a given string to an ObjectType
    18  // enumeration instance.
    19  func ObjectTypeFromString(s string) ObjectType {
    20  	switch strings.ToLower(s) {
    21  	case "blob":
    22  		return BlobObjectType
    23  	case "tree":
    24  		return TreeObjectType
    25  	case "commit":
    26  		return CommitObjectType
    27  	case "tag":
    28  		return TagObjectType
    29  	default:
    30  		return UnknownObjectType
    31  	}
    32  }
    33  
    34  // String implements the fmt.Stringer interface and returns a string
    35  // representation of the ObjectType enumeration instance.
    36  func (t ObjectType) String() string {
    37  	switch t {
    38  	case UnknownObjectType:
    39  		return "unknown"
    40  	case BlobObjectType:
    41  		return "blob"
    42  	case TreeObjectType:
    43  		return "tree"
    44  	case CommitObjectType:
    45  		return "commit"
    46  	case TagObjectType:
    47  		return "tag"
    48  	}
    49  	return "<unknown>"
    50  }