shithub: furgit

ref: 3ce59c3248dec0eb0f918c42f37f53bc2ac20425
dir: /ref/name/options.go/

View raw version
package refname

import "fmt"

// Options controls Git refname validation.
type Options struct {
	// AllowOneLevel permits one-component refnames like HEAD.
	AllowOneLevel bool

	// RefspecPattern permits one '*' anywhere in the refname.
	RefspecPattern bool
}

// String returns one stable text form of the options.
func (options Options) String() string {
	return fmt.Sprintf("allow_onelevel=%t,refspec_pattern=%t", options.AllowOneLevel, options.RefspecPattern)
}

func (options Options) flags() int {
	var flags int
	if options.AllowOneLevel {
		flags |= refnameAllowOneLevel
	}

	if options.RefspecPattern {
		flags |= refnameRefspecPattern
	}

	return flags
}