package match

import (
	
	
	
)

type Match int

const (
	CASE_SENSITIVE Match = iota
	CASE_INSENSITIVE
)

func ( Match) (,  string) bool {
	if  == CASE_INSENSITIVE {
		return strings.EqualFold(, )
	}
	return  == 

}

func ( Match) (,  string) bool {
	if  == CASE_INSENSITIVE {
		return strings.HasPrefix(strings.ToLower(), strings.ToLower())
	}
	return strings.HasPrefix(, )
}

func ( Match) (,  string) string {
	if .HasPrefix(, ) {
		return [len():]
	}
	return 
}

var match = CASE_SENSITIVE

func init() {
	switch os.Getenv("CARAPACE_MATCH") {
	case "CASE_INSENSITIVE", strconv.Itoa(int(CASE_INSENSITIVE)):
		match = CASE_INSENSITIVE
	}
}

func (,  string) bool {
	return match.Equal(, )
}

func (,  string) bool {
	return match.HasPrefix(, )
}

func (,  string) string {
	return match.TrimPrefix(, )
}