code.gitea.io/gitea@v1.22.3/modules/structs/commit_status.go (about)

     1  // Copyright 2020 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package structs
     5  
     6  // CommitStatusState holds the state of a CommitStatus
     7  // It can be "pending", "success", "error" and "failure"
     8  type CommitStatusState string
     9  
    10  const (
    11  	// CommitStatusPending is for when the CommitStatus is Pending
    12  	CommitStatusPending CommitStatusState = "pending"
    13  	// CommitStatusSuccess is for when the CommitStatus is Success
    14  	CommitStatusSuccess CommitStatusState = "success"
    15  	// CommitStatusError is for when the CommitStatus is Error
    16  	CommitStatusError CommitStatusState = "error"
    17  	// CommitStatusFailure is for when the CommitStatus is Failure
    18  	CommitStatusFailure CommitStatusState = "failure"
    19  	// CommitStatusWarning is for when the CommitStatus is Warning
    20  	CommitStatusWarning CommitStatusState = "warning"
    21  )
    22  
    23  var commitStatusPriorities = map[CommitStatusState]int{
    24  	CommitStatusError:   0,
    25  	CommitStatusFailure: 1,
    26  	CommitStatusWarning: 2,
    27  	CommitStatusPending: 3,
    28  	CommitStatusSuccess: 4,
    29  }
    30  
    31  func (css CommitStatusState) String() string {
    32  	return string(css)
    33  }
    34  
    35  // NoBetterThan returns true if this State is no better than the given State
    36  // This function only handles the states defined in CommitStatusPriorities
    37  func (css CommitStatusState) NoBetterThan(css2 CommitStatusState) bool {
    38  	// NoBetterThan only handles the 5 states above
    39  	if _, exist := commitStatusPriorities[css]; !exist {
    40  		return false
    41  	}
    42  
    43  	if _, exist := commitStatusPriorities[css2]; !exist {
    44  		return false
    45  	}
    46  
    47  	return commitStatusPriorities[css] <= commitStatusPriorities[css2]
    48  }
    49  
    50  // IsPending represents if commit status state is pending
    51  func (css CommitStatusState) IsPending() bool {
    52  	return css == CommitStatusPending
    53  }
    54  
    55  // IsSuccess represents if commit status state is success
    56  func (css CommitStatusState) IsSuccess() bool {
    57  	return css == CommitStatusSuccess
    58  }
    59  
    60  // IsError represents if commit status state is error
    61  func (css CommitStatusState) IsError() bool {
    62  	return css == CommitStatusError
    63  }
    64  
    65  // IsFailure represents if commit status state is failure
    66  func (css CommitStatusState) IsFailure() bool {
    67  	return css == CommitStatusFailure
    68  }
    69  
    70  // IsWarning represents if commit status state is warning
    71  func (css CommitStatusState) IsWarning() bool {
    72  	return css == CommitStatusWarning
    73  }